我有View1
,ViewModel1
(View1
的数据源)和UserControl
(TextBlockComboBoxUC
)。
View1
在XAML中包含TextBlockComboBoxUC
,如下所示:
<vwKomp:TextBlockComboBoxUC
ComboBoxItemSource="{Binding Path=ZoznamStatov, Mode=OneWay}"
ComboBoxSelectedValue="{Binding Path=TrvalaAdresa.Stat, Mode=TwoWay}">
</vwKomp:TextBlockComboBoxUC>
TextBlockComboBoxUC
包含TextBlock
和ComboBox
。
如果ViewModel1
的{{1}}事件被提出,我怎样才能从ComboBox
调用该方法?
我想以某种方式通过代表,但我没有关于SelectionChanged
中UserControl
的信息。
答案 0 :(得分:1)
如果您不介意使用MVVM Light library,我认为您可以设置该事件的触发器来调用该命令:
<vwKomp:TextBlockComboBoxUC
ComboBoxItemSource="{Binding Path=ZoznamStatov, Mode=OneWay}"
ComboBoxSelectedValue="{Binding Path=TrvalaAdresa.Stat, Mode=TwoWay}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="SelectionChanged" >
<cmd:EventToCommand
Command="{Binding YourSelectionChangedCommandHandler}"
PassEventArgsToCommand="True" />
</i:EventTrigger>
</i:Interaction.Triggers>
</vwKomp:TextBlockComboBoxUC>
其中:
xmlns:i="clr-namespace:System.Windows.Interactivity;assembly=System.Windows.Interactivity"
xmlns:cmd="clr-namespace:GalaSoft.MvvmLight.Command;assembly=GalaSoft.MvvmLight.Extras.WPF4"
来源:http://www.danharman.net/2011/08/05/binding-wpf-events-to-mvvm-viewmodel-commands/