从用户控件调用viewModel函数

本文关键字:viewModel 函数 调用 控件 用户 | 更新日期: 2023-09-27 18:10:44

我有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包含TextBlockComboBox

ComboBoxSelectionChanged事件被引发时,我如何从ViewModel1调用该方法?

我想以某种方式通过委托,但我没有UserControlViewModel1的信息。

从用户控件调用viewModel函数

如果您不介意使用MVVM Light库,我认为您可以为该事件设置一个触发器来调用命令:

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