更改项目DisplayMemberPath MVVM时,WPF ListView不会更新

时间:2013-03-04 18:42:18

标签: wpf listview mvvm

我有WPF ListView绑定到ObservableCollection。

这是我的ListView:

<ListView 
                BorderBrush="#6797c8" 
                BorderThickness="2" 
                ItemsSource="{Binding Path=MainCategoriesCollection, UpdateSourceTrigger=PropertyChanged}" 
                DisplayMemberPath="Category" 
                SelectedValuePath="MainCatID" 
                SelectedItem="{Binding MainCategorySelectedItem}"
                SelectedIndex="{Binding MainCategorySelectedIndex, Mode=TwoWay}"
                FontSize="14"/>

这是我的ItemSource:

    private ObservableCollection<DataModel.MainCategories> mainCategoriesCollection;
public ObservableCollection<DataModel.MainCategories> MainCategoriesCollection
{
    get
    {
        if (mainCategoriesCollection == null)
        {
            mainCategoriesCollection = new ObservableCollection<DataModel.MainCategories>();
        }
        return mainCategoriesCollection;
    }
    set
    {
        mainCategoriesCollection = value;
        RaisePropertyChanged("MainCategoriesCollection" );
    }
}

我有线问题。当我从MainCategoriesCollection添加项目或删除项目时,我的ListView得到更新而没有任何问题,但是当我采取特定项目并更改表示“DisplayMemberPath”的项属性时,我无法看到ListView中的更改。我调试了问题,发现MainCategoriesCollection中存在更改但我的ListView拒绝显示它。

有什么想法吗?

1 个答案:

答案 0 :(得分:4)

确保DisplayMemberPath属性位于具有所有INotifyPropertyChanged内容的视图模型上,即属性是否可观察?