<ComboBox WIDth="422" Height="24" displayMemberPath="name" ItemsSource="{Binding categoryTypes}" SelectedItem="{Binding Selectedcategory}" > <i:Interaction.Triggers> <i:EventTrigger Eventname="SelectionChanged"> <Mvvmlight:EventToCommand Command="{Binding SelectcategoryCommand,Mode=TwoWay}" CommandParameter="{Binding Selectedcategory,Mode=TwoWay}" MustToggleIsEnabledValue="True" /> </i:EventTrigger> </i:Interaction.Triggers></ComboBox>
在我看来,
public ICommand SelectcategoryCommand{ get { return new SelectcategoryCommand(this); }}public categoryType Selectedcategory{ get; set;}
和ICommand
public class SelectcategoryCommand : ICommand{ private Rowviewmodel _rowviewmodel; public SelectcategoryCommand(Rowviewmodel rowviewmodel) { _rowviewmodel = rowviewmodel; } public bool CanExecute(object parameter) { return true; } public event EventHandler CanExecuteChanged; public voID Execute(object parameter) { categoryType categoryType = (categoryType) parameter; }}
但是,ICommand的Execute方法中的参数始终为空.我对Silverlight没有经验,所以我觉得我真的很想念这里的东西.谁能帮忙?提前致谢!
解决方法 在做一些挖掘之后,我发现将实际的SelectionChangedEventArgs作为ICommand的execute参数传递很简单:只要设置PassEventArgsToCommand =“True”
<ComboBox WIDth="422" Height="24" displayMemberPath="name" ItemsSource="{Binding categoryTypes}" SelectedItem="{Binding Selectedcategory}"> <i:Interaction.Triggers> <i:EventTrigger Eventname="SelectionChanged"> <Mvvmlight:EventToCommand Command="{Binding SelectcategoryCommand,Mode=TwoWay}" MustToggleIsEnabledValue="True" PassEventArgsToCommand="True"/> </i:EventTrigger> </i:Interaction.Triggers></ComboBox>
然后在Execute方法中执行以下 *** 作:
public voID Execute(object parameter){ SelectionChangedEventArgs e = (SelectionChangedEventArgs)parameter; categoryType categoryType = (categoryType)e.AddedItems[0];}总结
以上是内存溢出为你收集整理的Mvvm-Light Silverlight,使用EventToCommand和Combobox全部内容,希望文章能够帮你解决Mvvm-Light Silverlight,使用EventToCommand和Combobox所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)