gpt4 book ai didi

WPF:如何在 ViewModel 中调用自定义 UserControl 的功能

转载 作者:行者123 更新时间:2023-12-04 20:32:23 24 4
gpt4 key购买 nike

我在独立程序集中使用 WPF 定义了一个自定义控件。在另一个项目中,我只是简单地引用它并在 XAML 中使用它,如下所示:

<my:CustomUserControl Name="myControl" IsEnabled="{Binding CanTheUserInputTrade}"/>

CustomUserControl 类有一个名为“Reset”的成员函数。

我曾经使用以下方法在 View.xaml.cs 文件中调用此函数:
myControl.Reset()

但是,出于正当理由,我必须将调用此函数的逻辑移到 ViewModel 中。据我所知,在 ViewModel 中引用 View 并不是一个好习惯。因此,我将无法从 ViewModel 访问“myControl”引用。

我的问题是:如何在 ViewModel 中调用 Reset 函数。

这是一个常见的用例,我相信有一种方法可以做到这一点。有人可以指出我正确的方向。

非常感谢。

最佳答案

过去,我从 View 的代码隐藏中连接了该事件。

View 模型:

public ICommand ResetCommand {get; set;}

从 UserControl 的 OnLoad 方法:
private void MyUserControl_Loaded(object sender, RoutedEventArgs e)
{
MyUserControl ctrl = sender as MyUserControl;
if (ctrl == null) return;

MyViewModel vm = ctrl.DataContext as MyViewModel ;

if (vm == null)
return;

vm.ResetCommand = new RelayCommand(param => this.Reset());
}

关于WPF:如何在 ViewModel 中调用自定义 UserControl 的功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4995680/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com