c# - 更改在 MVVM 模式中按下的特定键的 View

标签 c# wpf xaml mvvm

我正在使用 WPF 和 MVVM 模式构建一个小应用程序。特别是,我想在 TreeView 中显示结构化数据。为了简单起见,假设我创建了一个接口(interface) IParentVM,它定义了一个

ObservableCollection<IParent> ListOfChildren { get; }

作为 ItemsSource 并在多个类中实现此接口(interface),例如 ClassA 和 ClassB。这些类有更多的属性,两个常见的属性是
string Alias {get; set; }
string Comment { get; set; }

为了根据项目的类型(其类)设置我的 TreeView 的样式,我还创建了相应的分层 DataTemplates。一切都按预期工作:我能够在 TextBox 中为 ClassA 以粗体显示 Alias 的内容,在 ClassB 中以斜体显示 Alias 的内容,并在这两个类的 Tooltips 中显示 Comment 的内容。

我的问题如下:是否可以在 HierarchicalDataTemplates 中添加某种 EventTriggers,以便我可以使用绑定(bind)到评论的不同 TextBox,这样我的整个 TreeView 将显示所有评论而不是别名,只要按下某个键?

最佳答案

我想你可以做一些“快速而丑陋”的事情。
在您的数据模板中添加一个绑定(bind)到您的评论的文本框。
然后,将此 TextBox 的可见性绑定(bind)到 ViewModel 中的 bool 值。

最后,当您按下键时,在您的 VM 中触发一个命令,该命令将更新 bool 值,因此更新可见性绑定(bind)的 UI。

这不是很花哨,但它应该可以工作:)

关于c# - 更改在 MVVM 模式中按下的特定键的 View ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37678579/

相关文章:

c# - 什么是带有 CollectionViewGroup 分组的惯用 XAML TreeView?

c# - 在 C#/XNA 中使用通用函数进行碰撞检测

c# - Selenium 陈旧元素 c#

c# - 如何将对象从组合框选择的项目转换为字符串

wpf - 如何使用 Rx 和 F# 将 WPF Button.Click 事件转换为 Observable

c# - WP7.8 : Bound items in scrollbox updated with wrong data

c# - 保存文件时计算哈希?

c# - C#WPF动态创建控件组WPF

wpf - 无法在数据触发器中使用标签的自定义属性

c# - WPF:从 DataGrid.RowDetailsTemplate 获取指定控件的所有列表