我正在尝试用列表填充wpf组合框。我有两个问题。
这是我对组合框的XAML:
<Label Target="{Binding ElementName=State}" Grid.Row="10" Grid.Column="0">State:</Label>
<ComboBox x:Name="State" Margin="10,0,0,10" Grid.Column="1" Grid.Row="10" ItemsSource="{Binding Path=States, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay, NotifyOnValidationError=True, ValidatesOnDataErrors=True}" Validation.Error="Validation_Error" SelectedValue="{Binding Path=FamilyMember.State}"/>
<TextBlock Grid.Column="2" Grid.Row="10" Style="{StaticResource TextBlockStyle}" Text="{Binding (Validation.Errors)[0].ErrorContent, ElementName=State}" Margin="10,0,0,10"/>
这是我的部分视图模型,我在其中声明并填充我的States对象。
ViewModel中的属性
public ObservableCollection<string> States;
构造
States = new ObservableCollection<string>();
States.Add("One");
States.Add("Two");
States.Add("Three");
States.Add("Four");
States.Add("Five");
它适用于其他领域,没有任何问题,如下所示:
答案 0 :(得分:5)
更改此字段:
public ObservableCollection<string> States;
属性:
public ObservableCollection<string> States {get; set;}
绑定对字段不起作用,即使它们是公开的。
答案 1 :(得分:-1)
在视图模型中将States更改为完整属性,并在xaml文件的组合框中添加显示成员路径。
查看型号:
public ObservableCollection<string> _state = new ObservableCollection<string>();
public ObservableCollection<string> States
{
get{return _state;}
set {_state = value; OnPropertyChange("States");}
}
如果您需要更多说明,请参阅此页面: https://www.codeproject.com/Articles/301678/Step-by-Step-WPF-Data-Binding-with-Comboboxes