【问题标题】:Call Button OnClick from ViewModel从 ViewModel 调用按钮 OnClick
【发布时间】:2014-11-18 19:22:49
【问题描述】:

我有一个按钮如下,

<Button Height="40" Width="40" x:Name="btnup" Command="{Binding UpCommand}" CommandParameter="{Binding ElementName=dgEntities,Path=SelectedItem}" Click="Btnup_OnClick">

在 ViewModel 中有一个 UpCommand,在 XAML.cs 中有 Btnup_OnClick 事件。是否有可能在视图模型的 UpCommand 中调用 Btnup_OnClick 事件。请帮忙。我希望在 OnClick 之后执行命令。

【问题讨论】:

    标签: wpf mvvm prism


    【解决方案1】:

    AFAIK,您不能从视图模型中调用代码隐藏函数(您可能也不应该这样做,这有点违背了拥有 VM 的目的)。

    如果要协调两个单独的函数,可以通过获取页​​面的数据上下文从代码隐藏中调用视图模型函数:

    private void Btnup_OnClick(){
      //DO YOUR OTHER STUFF HERE
      var viewModel = (MyViewModelClass)DataContext;
      viewModel.UpCommand();
    }
    

    【讨论】:

    • 实际上对于 UpCommand 参数,我正在传递数据网格的选定行。我如何从视图中传递它。
    • 您可以将 Grid 的 SelectedItem 属性绑定到 viewModel 属性。然后它将可以在视图模型中访问。 SelectedItem="{绑定 SelectedThing, Mode=TwoWay}"
    猜你喜欢
    • 1970-01-01
    • 2016-10-05
    • 2012-12-07
    • 1970-01-01
    • 2011-04-18
    • 2015-05-14
    • 1970-01-01
    • 2015-04-27
    • 1970-01-01
    相关资源
    最近更新 更多