如何更新wpf中的组合框项?

时间:2018-06-01 08:10:12

标签: c# wpf combobox

我在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是正在使用的组合框。 那么如何在选择更改事件上刷新我的组合框项目。

1 个答案:

答案 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>