كيف يمكنني الحصول على هذا DataTrigger إلى العمل ؟
-
06-07-2019 - |
سؤال
أريد بلدي مربع نص إلى خلفية حمراء إذا ViewModel property = "صالح".ماذا يجب أن يتغير حتى يعمل هذا ؟
هذا الإصدار يقول لي أن الخلفية لا المؤهلة اكتب اسم.
<TextBox
Width="200"
Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Triggers>
<DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid">
<Setter Property="TextBox.Background" Value="Tomato"/>
</DataTrigger>
</TextBox.Triggers>
</TextBox>
عند إضافة "مربع نص". وهو يقول لي أن EventTrigger:
<TextBox
Width="200"
Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Triggers>
<DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid">
<Setter Property="Background" Value="Tomato"/>
</DataTrigger>
</TextBox.Triggers>
</TextBox>
المحلول
اسمحوا لي أن الإجابة على هذا واحد ، كنت قد نسيت أن التفاف كل شيء في الاسلوب ، ثم فإنه يعمل بشكل جيد:
<TextBox
Width="200"
Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid">
<Setter Property="TextBox.Background" Value="Tomato"/>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
أو هذا:
<Style x:Key="FieldEmailStyle" TargetType="TextBox">
<Style.Triggers>
<DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="invalid">
<Setter Property="TextBox.Background" Value="Yellow"/>
</DataTrigger>
<DataTrigger Binding="{Binding FieldEmailValidationStatus}" Value="valid">
<Setter Property="TextBox.Background" Value="LightGreen"/>
</DataTrigger>
</Style.Triggers>
</Style>
<TextBox
Width="200"
Style="{StaticResource FieldEmailStyle}"
Text="{Binding FieldEmail, UpdateSourceTrigger=PropertyChanged}">
</TextBox>
لا تنتمي إلى StackOverflow