【问题标题】:MVVM wpf TreeView how to handle Expanded eventMVVM wpf TreeView如何处理扩展事件
【发布时间】:2016-07-13 12:10:12
【问题描述】:

我正在实现延迟加载树视图,并且需要处理 Expanded 事件。我想直接在 ViewModel 中进行。我已经连接了一个 EventTrigger:

<i:Interaction.Triggers>
    <i:EventTrigger EventName="Expanded">
        <interactivity:InvokeCommandAction Command="{Binding HandleExpandCmd}" TriggerParameterPath="OriginalSource"  />
    </i:EventTrigger>  
</i:Interaction.Triggers>

虽然这可以按预期工作,但 OriginalSource 是 TreeViewItem,我希望在我的 ViewModel 中包含 System.Windows.Controls。
或者,我可以在代码隐藏中处理事件,并将 TreeViewItems 的 DataContext 传递给 ViewModel。 (当然,DataContext 是 ViewModel 需要使用的。)
我可以在 TriggerParameterPath 中使用传递 TVI 数据上下文而不是 TVI 本身的语法吗?
谢谢---

【问题讨论】:

  • 你可以使用
  • @Ayyappan Subramanian -- 谢谢,但获取的是 TreeView 的 ViewModel,而不是绑定到 TVI 的项目的 ViewModel。

标签: c# wpf treeview prism eventtrigger


【解决方案1】:

我建议将TreeViewItemIsExpanded 属性绑定到您的ViewModel 中的一个。然后你可以在 ViewModel 中随心所欲地处理它!

Here is an example of how to do that.

【讨论】:

  • Hutter:谢谢——应该可以。通过 OnPropertyChanged 将 TVI 的 VM 中的更改冒泡,并在 VM 中为 TreeView 处理它。
猜你喜欢
  • 1970-01-01
  • 2017-07-22
  • 2013-03-22
  • 2014-03-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-27
  • 2011-10-15
相关资源
最近更新 更多