.net – Silverlight MVVM-Light中的SelectionChanged事件绑定

.net – Silverlight MVVM-Light中的SelectionChanged事件绑定,第1张

概述ComboBox控件的“SelectionChanged”事件的处理程序具有以下签名: void SelectionChangedMethod(object sender, SelectionChangedEventArgs e) 如何在Silverlight 4和MVVM-Light下绑定到该属性到ViewModel对象的相应方法? 据我所知,我需要做这样的事情: public void Cha ComboBox控件的“SelectionChanged”事件的处理程序具有以下签名:

voID SelectionChangedMethod(object sender,SelectionChangedEventArgs e)

如何在Silverlight 4和MVVM-light下绑定到该属性到viewmodel对象的相应方法?

据我所知,我需要做这样的事情:

public voID Changed(Object obj,SelectionChangedEventArgs e){    // .... implement logic here}RelayCommand<Object,SelectionChangedEventArgs> _command;public ICommand ObjectSelectionChanged{    get    {        if (_command == null)        {            _command = new RelayCommand<Object,SelectionChangedEventArgs>(Changed);        }        return _command;    }}

问题是MVVM-light框架中的RelayCommand类不支持2个通用参数……

这种情况有什么解决方案或解决方法吗?如何使用2个参数将控制事件绑定到方法?

还有一个问题:ComboBox没有“Command”属性来绑定这个命令..?如何将事件发送到viewmodel?

谢谢.

附:我试图使用组合框的SelectedItem属性,但似乎ComboBox实现不正确,它不起作用…

解决方法 尝试连接SelectedChangedEvent有一种更简单的方法.

尝试…

<ComboBox ItemsSource={Binding Path=names} SelectedItem={Binding Path=Selectedname,Mode=TwoWay}>public class viewmodel : viewmodelBase{    private string _selectedname;    public string Selectedname    {        get { return _selectedname; }        set        {            if (_selectedname == value) return;            _selectedname = value;            RaisePropertyChanged("Selectedname");        }    }}

可以按照你的方式去做

<galaSoft_Mvvmlight_Command:EventToCommand Command="{Binding MyCommand}" PassEventArgsToCommand="True"/>

Command应该是’SelectionChangedEventArgs’类型的RelayCommand

总结

以上是内存溢出为你收集整理的.net – Silverlight MVVM-Light中的SelectionChanged事件绑定全部内容,希望文章能够帮你解决.net – Silverlight MVVM-Light中的SelectionChanged事件绑定所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1000981.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-21
下一篇 2022-05-21

发表评论

登录后才能评论

评论列表(0条)

保存