我正在使用DataAnnotations實現MVVM設計模式的應用程序。該應用程序是一個動態生成的頁面列表。在其中一頁上,我有10個必填字段,其中有2個是/否單選按鈕。這10個字段分成兩組,每組用邊界標籤wwapped。每個邊框的可見性都與隱藏/可見的單選按鈕綁定。當單選按鈕被選中時,WPF/XAML - DataTriggers設置ValidatesOnDataErrors = false/true
我的問題是,如果選擇是,並顯示相關的5個必需的文本框我怎樣才能將ValidatesOnDataErrors設置爲false/true並清除其他隱藏所需文本框的文本框的值?
這裏是一個代碼片段。
感謝
<Border>
<Border.Style>
<Style>
<Setter Property="Border.Visibility" Value="Hidden"></Setter>
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=PresentlyEmployed_yes, Path=IsChecked}"
Value="True">
<Setter Property="Border.Visibility" Value="Visible"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
<Grid Height="Auto" Width="Auto">
<Label Name="JobTitle"
Content="{x:Static properties:Resources.JobTitlelbl}" />
<TextBox Name="JobTitle" Text="{Binding JobTitle, Mode=TwoWay,
ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Setter Property="Text" Value="{Binding PrimaryInsuredBusinessDuties, Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged, IsAsync=True}" />
<Style.Triggers>
<DataTrigger Binding="{Binding ElementName=PresentlyEmployed_yes, Path=IsChecked}"
Value="True">
<Setter Property="Text" Value="{Binding JobTitle, Mode=TwoWay,
ValidatesOnDataErrors=True, UpdateSourceTrigger=PropertyChanged}" />
</DataTrigger>
<DataTrigger Binding="{Binding ElementName=PresentlyEmployed_yes, Path=IsChecked}"
Value="False">
<Setter Property="Text" Value="{Binding JobTitle, Mode=TwoWay,
ValidatesOnDataErrors=False, UpdateSourceTrigger=PropertyChanged}"></Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
</Grid>
</Border>
你爲什麼不只是重新綁定'Text'值不觸發器中的ValidatesOnDataErrors? – Rachel
我試過了,它沒有奏效。問題是,一旦ValidatesOnDataErrors設置爲True,我嘗試用 ValidatesOnDataErrors = False重新綁定它,或者無法驗證ValidatesOnDataErrors,或者即使我沒有將它綁定到任何東西,它也不會刪除驗證。這裏是我的財產的樣子: [必需(的ErrorMessage = 「!必填字段」) 公共字符串JOBTITLE { 得到 { 回報_jobTitle; } set { _jobTitle = value; } } 謝謝, – Bobby
也許它沒有更新UI,因爲BindingSource沒有更改。除了重新綁定屬性外,當RadioButton改變時,嘗試在ViewModel中引發'PropertyChanged'事件。 – Rachel