从用户控件调用viewModel的函数

时间:2014-06-30 11:54:06

标签: c# wpf xaml events

我有View1ViewModel1View1的数据源)和UserControlTextBlockComboBoxUC)。 View1在XAML中包含TextBlockComboBoxUC,如下所示:

<vwKomp:TextBlockComboBoxUC
    ComboBoxItemSource="{Binding Path=ZoznamStatov, Mode=OneWay}"
    ComboBoxSelectedValue="{Binding Path=TrvalaAdresa.Stat, Mode=TwoWay}">
</vwKomp:TextBlockComboBoxUC>

TextBlockComboBoxUC包含TextBlockComboBox

如果ViewModel1的{​​{1}}事件被提出,我怎样才能从ComboBox调用该方法?

我想以某种方式通过代表,但我没有关于SelectionChangedUserControl的信息。

1 个答案:

答案 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/