gpt4 book ai didi

WPF 命令 - 在没有代码隐藏的情况下执行此操作

转载 作者:行者123 更新时间:2023-12-04 17:13:54 24 4
gpt4 key购买 nike

我正在使用 MVVM 模式以 WPF 形式构建一个简单的数据输入应用程序。每个表单都有一个显示所有数据等的演示者对象。我想使用 WPF 命令来启用和禁用编辑/保存/删除按钮和菜单选项。

我的问题是这种方法似乎需要我在代码隐藏中添加大量代码。我试图让我的表示层尽可能薄,所以我宁愿这个代码/逻辑在我的演示者(或 ViewModel)类中,而不是在代码隐藏中。任何人都可以提出一种无需代码隐藏即可实现相同目标的方法吗?

我的 XAML 看起来有点像这样:

<Window.CommandBindings>
<CommandBinding
Command="ApplicationCommands.Save"
CanExecute="CommandBinding_CanExecute"
Executed="CommandBinding_Executed"
/>
</Window.CommandBindings>

我的代码隐藏看起来有点像这样:
private void CommandBinding_CanExecute(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = (
_presenter.SelectedStore != null &&
_presenter.SelectedStore.IsValid);
}

最佳答案

Model-View-ViewModel (MVVM) 设计模式旨在实现该目标,而 Josh Smith 的 excellent article解释如何应用它。

对于命令,您可以使用 RelayCommand文章中描述的类。

由于您已经有一个演示者对象,您可以让该类公开一个 ICommand实现所需逻辑的属性,然后将 XAML 绑定(bind)到该命令。这一切都在文章中进行了解释。

关于WPF 命令 - 在没有代码隐藏的情况下执行此操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1542664/

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