gpt4 book ai didi

c# - WPF 事件绑定(bind)到 ViewModel(对于非命令类)

转载 作者:行者123 更新时间:2023-12-03 12:52:39 25 4
gpt4 key购买 nike

我正在开发应用程序的第二个版本,作为重写的一部分,我必须迁移到 MVVM 架构。我迫于压力要把每一段代码都放在 View 模型类中——在文件后面的代码中包含 c# 是不受欢迎的。 (我知道,我知道......我知道后面的代码不是一件坏事,但这次不是我的电话)。

对于实现命令接口(interface)的对象,这很容易。我已经找到了大量关于如何将这些对象的 Command 绑定(bind)到 View 模型中的 ICommand 的信息。问题在于没有此接口(interface)的对象,例如

<ListBox
x:Name="myListBox"
MouseDoubleClick="myCallbackFunction">

<!-- ... -->

</ListBox>

我想知道如何将 Listbox 的 MouseDoubleClick 事件绑定(bind)到 myCallbackFunction,这是在 View 模型中实现的。这甚至可能吗?

谢谢!

最佳答案

这是直接不可能的。它可以通过附加属性或行为来完成,尽管找到和调用适当的方法仍然有点棘手(这可以通过反射相当容易地完成)。

话虽如此,这通常通过 ICommand 处理。 - 例如,MVVM Light 有一个很棒的 EventToCommand将任何事件映射到 ViewModel 上的 ICommand 的行为。使用 ICommand 的优点是您仍然可以使用 DataBinding,因为 ICommand 是作为属性公开的。

关于c# - WPF 事件绑定(bind)到 ViewModel(对于非命令类),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6430256/

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