【发布时间】:2018-06-01 23:50:22
【问题描述】:
我在 wpf 应用程序中有组合框。在组合框 selectionChanged 事件中,我在组合框中又添加了一项。我已将组合框与 wvvm 架构绑定。在 selectionchanged 时,我的列表已更新,但组合框项目未刷新。 我的xml代码如下:
<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();
}
这里我的列表已更新,但组合框未更新。 可能是错误是组合框正在使用中。 那么如何在选择更改事件时刷新我的组合框项目。
【问题讨论】:
-
如果你想使用 MVVM 那么不要直接访问代码中的控件。您可以参考这个链接 - c-sharpcorner.com/article/explain-combo-box-binding-in-mvvm-wpf,它展示了如何使用 MVVM 设计模式进行绑定。
-
我已经将组合框与 MVVM 绑定,它工作正常。我的列表在选择更改时更新但我面临刷新我所做的选择更改事件的组合框项目的问题。
-
我不明白你在做什么。如果您使用的是 MVVM,那么为什么不直接更新绑定到组合框的原始集合?