【问题标题】:Selection changed event of combobox in wpf mvvmwpf mvvm中组合框的选择更改事件
【发布时间】:2014-01-15 06:51:41
【问题描述】:

我是 wpf 和 MVVM 的新手,我花了一整天的时间试图在 SelectionChanged 上将 ComboBox 的值传递给我的 ViewModel。我想在选择更改过程中调用一个函数。在mvvm中,有什么解决办法呢?

【问题讨论】:

  • 你想知道什么?你有一些代码要显示吗?
  • @JineshG,在本网站上,用户被要求遵守一套关于提问和回答问题的基本规则,以保持高标准的内容。你的问题没有达到那个高标准。因此,请您花点时间阅读Help Center 中的How do I ask a good question? 页面。 gomi42 向您提出的问题与此“质量控制”有关,并且是问题作者所要求的。非常感谢并欢迎使用 StackOverflow。

标签: wpf mvvm


【解决方案1】:

在 MVVM 中,我们通常处理事件,因为在视图模型中使用 UI 代码不太好。我们经常不使用SelectionChanged之类的事件,而是使用属性绑定到ComboBox.SelectedItem

查看模型:

public ObservableCollection<SomeType> Items { get; set; } // Implement 
public SomeType Item { get; set; } // INotifyPropertyChanged here

查看:

<ComboBox ItemsSource="{Binding Items}" SelectedItem="{Binding Item}" />

现在,每当 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
        }
    }
}

【讨论】:

  • 当我做某事改变了所选项目时,出现了一些问题。即,第一次时,它不能正常工作......然后没问题......有什么想法吗?
  • @JineshG,如果您还有其他问题,请作为新问题提出。您可以在其中添加指向此问题的链接。
  • 在这个答案被标记为已接受的答案 9 个月后,你怎么会突然决定不再回答你的问题?
  • 那么请在此处分享,将其添加为答案并接受它。
猜你喜欢
  • 2012-11-03
  • 1970-01-01
  • 1970-01-01
  • 2018-06-24
  • 1970-01-01
  • 2011-02-21
  • 1970-01-01
  • 2012-12-16
  • 1970-01-01
相关资源
最近更新 更多