【发布时间】:2017-06-09 18:36:27
【问题描述】:
我在 XAML 中有这个 ComboBox ClienWindow.xaml
当我将这个 ItemsSource 绑定到 ClientGenderSource 后面的代码时,使用Mode=TwoWay,
它不工作(没有显示)但验证错误有效(IDataErrorInfo),
但是当我使用Mode=OneWay 或Mode=OneWayToSource 时,它的工作方式是显示男性、女性和验证不起作用?
<ComboBox
x:Name="ClientGenderField"
Grid.Row="2"
Grid.Column="1"
Width="320"
HorizontalAlignment="Left"
VerticalAlignment="Center"
materialDesign:HintAssist.Hint="Client Gender"
IsSynchronizedWithCurrentItem="True"
ItemsSource="{Binding ClientGender, Mode=TwoWay, ValidatesOnDataErrors=True,
UpdateSourceTrigger=PropertyChanged,
NotifyOnValidationError=true}"
SelectedItem="{Binding EditClient.ClientGender}"
Style="{StaticResource MaterialDesignFloatingHintComboBox}" />
然后在后面的代码中: ClienWindow.xaml.cs
string[] ClientGenderSource = new string[] { "Male", "Female", "Other" };
ClientGenderField.ItemsSource = ClientGenderSource;
然后在 ClientViewModel.cs 我有 ClientGender 属性:
// ClientGender Property
private string _ClientGender;
public string ClientGender
{
get
{
return _ClientGender;
}
set
{
if (_ClientGender != value)
{
_ClientGender = value;
EditClient.ClientGender = _ClientGender;
NotifyPropertyChanged("ClientGender");
}
}
}
ViewModel CTOR:
public ClientViewModel(Client Client)
{
ClientGender = EditClient.ClientGender;
}
【问题讨论】: