0

这可能并不难,但作为 wpf/mvvm 初学者,我仍在努力学习一些基础知识。

我在视图中有一个组合框(就像一个过滤器)和一个网格数据。我使用 MMVM 和数据绑定。在启动时填充网格数据并设置组合框的选择 - 工作正常。当组合框中的选择发生变化时,我想替换 griddata 的内容。组合框所选值绑定到我的视图模型中的一个属性,因此我知道它何时更改,并且我可以轻松替换绑定到 griddata 的集合(即 IList)的内容。但是我不知道如何使用 mvvm 绑定强制 griddata 在视图中“刷新”自身。

我正在考虑使用 ObservableCollection<> 但从我读到的内容看来替换内容也不是那么简单。我真的不需要视图知道集合中的单个项目何时更改 - 我将始终替换列表的全部内容。

我会很感激任何建议。

4

1 回答 1

0

您可以INotifyPropertyChanged在您身上实现并在更改ViewModel时调用它。List

例子:

public class ViewModel : INotifyPropertyChanged
{
    private List<MyObject> _myList;

    public List<MyObject> MyList
    {
        get { return _myList; }
        set { _myList = value; NotifyPropertyChanged(); }
    }

    public event PropertyChangedEventHandler PropertyChanged;
    public void NotifyPropertyChanged([CallerMemberName]string propertyName = null)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }
}

现在,当您替换时,MyListMyList = newlist会告诉 UI 更新绑定到的内容MyList

于 2013-08-28T01:32:18.183 回答