gpt4 book ai didi

wpf - 不同用户控件中的WPF命令处理

转载 作者:行者123 更新时间:2023-12-03 11:00:47 27 4
gpt4 key购买 nike

我的UI中有两个不同的用户控件。这些控件是UI层次结构中的兄弟。是否可以从一个用户控件中触发命令,然后在另一个用户控件上处理它?

换句话说,是否可以从其他用户控件(例如UserControlAViewModel)的以下ViewModel中使用ICommand属性?

class UserControlBViewModel : ViewModelBase
{
public ICommand Command
{
get
{
if (_Command == null)
{
_Command = new RelayCommand(param => this.CommandExecute(), param => this.CommandCanExecute);
}
return _Command ;
}
}
}

最佳答案

这是你的情况吗?您有一个带有两个控件(ChildViewA和ChildViewB)的父 View 。他们每个人都有自己的VM:

ParentView-ParentVM
ChildViewA-ChildAVM
ChildViewB-ChildBVM

ChildViewA执行使用RelayCommand在ChildAVM内部处理的命令。 ChildAVM通知ParentVM已执行命令。 ParentVM通知ChildBVM该命令已执行。
VM之间的通信方式取决于您需要/希望它们之间的连接程度。

一种简单的实现方法是让子VM实现INotifyPropertyChanged。然后,ParentVM可以订阅PropertyChanged事件。该命令将导致ChildAVM上的某些属性发生更改,这将由ParentVM注意到。接下来,parentVM将在ChildBVM上设置一些属性。

关于wpf - 不同用户控件中的WPF命令处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5249310/

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