我在wpf应用程序中有组合框。在组合框选择更改事件我已在组合框中添加了一个项目。我已经将组合框与wvvm架构绑定在一起。在selectionchanged上我的列表已更新,但组合框项目未刷新。 我的xaml代码如下:
<ComboBox Name="cmb" SelectionChanged="cmb_SelectionChanged"
ItemsSource="{Binding Source={StaticResource cmbList}}"
SelectedValue="{Binding Listvalue}" DisplayMemberPath="ItemName" SelectedValuePath="itemName" >
</ComboBox>
我使用了以下代码来改变sectionChanged:
private void cmb_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
DropDownItem newItemsValue = new DropDownItem { ID = 1, itemName = "newValue", strID = "newValue" };
this.objcmbList.cmbList.Add(newItemsValue);
(FindResource("CmbList") as ObjectDataProvider).ObjectInstance = this;
(FindResource("CmbList") as ObjectDataProvider).Refresh();
}
此处我的列表已更新,但组合框未更新。 可能是Error是正在使用的组合框。 那么如何在选择更改事件上刷新我的组合框项目。
答案 0 :(得分:0)
绑定到标准列表不会在WPF中自动更新。而不是使用List而不是在视图模型中使用ObservableCollection,例如:
Public ObservableCollection<string> cmbList = New ObservableCollection<string>()
然后在你的XAML中绑定它:
<ComboBox Name="cmb" SelectionChanged="cmb_SelectionChanged"
ItemsSource="{Binding Path=cmbList}}"
SelectedValue="{Binding Listvalue}" DisplayMemberPath="ItemName" SelectedValuePath="itemName" >
</ComboBox>