gpt4 book ai didi

.net - Silverlight+MVVM-Light 中的 SelectionChanged 事件绑定(bind)

转载 作者:行者123 更新时间:2023-12-04 16:20:46 26 4
gpt4 key购买 nike

ComboBox 控件的“SelectionChanged”事件的处理程序具有以下签名:

void SelectionChangedMethod(object sender, SelectionChangedEventArgs e)

如何将 Silverlight 4 和 MVVM-Light 下的该属性绑定(bind)到 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 个通用参数......

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

还有另一个问题:ComboBox 没有“Command”属性来绑定(bind)这个命令..?如何获取 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"/>

命令应该是“SelectionChangedEventArgs”类型的 RelayCommand

关于.net - Silverlight+MVVM-Light 中的 SelectionChanged 事件绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2933514/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com