我是wpf和MVVM的新手,我花了一整天的时间试图在SelectionChanged上将ComboBox的值赋予我的ViewModel.我想在选择更改过程中调用一个函数.在mvvm中,它的解决方案是什么?
在MVVM中,我们通常不处理事件,因为在视图模型中使用UI代码并不是很好.SelectionChanged我们经常使用属性绑定到ComboBox.SelectedItem:而不是使用诸如此类的事件.
查看型号:
public ObservableCollection<SomeType> Items { get; set; } // Implement
public SomeType Item { get; set; } // INotifyPropertyChanged here
Run Code Online (Sandbox Code Playgroud)
视图:
<ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding Item}" />
Run Code Online (Sandbox Code Playgroud)
现在,只要ComboBox更改了所选项目,Item属性也是如此.当然,您必须确保已将DataContext视图设置为视图模型的实例以使其工作.如果要在更改所选项目时执行某些操作,可以在属性设置器中执行此操作:
public SomeType Item
{
get { return item; }
set
{
if (item != value)
{
item = value;
NotifyPropertyChanged("Item");
// New item has been selected. Do something here
}
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
8749 次 |
| 最近记录: |