如何将命令添加到数据绑定 TreeView 中的项目
如何添加 WPF DelegateCommand
到 TreeView
绑定到 XmlDataProvider
? 我正在使用 MVVM 模式和复合 WPF,并且我希望当用户双击 TreeView 中的项目时调用该命令。
我在 XAML 中定义了一个 TreeView
,其 DataContext
设置为 XmlDataProvider
:
<TreeView
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ItemsSource="{Binding XPath=/SomeTopElement/*}">
<TreeView.Resources>
<HierarchicalDataTemplate
DataType="SomeElement"
ItemsSource="{Binding XPath=child::*}">
<TextBlock Text="{Binding XPath=@SomeAttribute}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
在代码的其他部分,我只需绑定到 ViewModel 中的 DelegateCommand
:
<MenuItem Command="{Binding NewCommand}" Header="_New" />
如何使用上面的 TreeView
来完成此操作?
How can I add WPF DelegateCommand
s to the items in a TreeView
bound to an XmlDataProvider
? I'm using the MVVM pattern and Composite WPF and I want the command to be called when the user double-clicks on an item in the TreeView
.
I have a TreeView
defined in XAML whose DataContext
is set to the XmlDataProvider
:
<TreeView
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
ItemsSource="{Binding XPath=/SomeTopElement/*}">
<TreeView.Resources>
<HierarchicalDataTemplate
DataType="SomeElement"
ItemsSource="{Binding XPath=child::*}">
<TextBlock Text="{Binding XPath=@SomeAttribute}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
In other parts of the code I simply bind to a DelegateCommand
in the ViewModel:
<MenuItem Command="{Binding NewCommand}" Header="_New" />
How can this be done with the above TreeView
?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您应该使用附加命令行为模式。 此问题回答了类似的问题,但在 ListView 中。
You should use the Attached Command Behavior pattern. This question answers a similar problem, but within a ListView.