【发布时间】:2013-11-29 14:54:50
【问题描述】:
我正在尝试使用 Caliburn.Micro 在 WPF TreeView 上实现复制和粘贴,但我一开始就卡住了。问题是我不知道在调用事件时复制或粘贴 TreeView 上的当前项目。下面是 TreeView 和事件处理程序的 xaml。有什么建议吗?
<TreeView Name="Nodes" AllowDrop="True">
<TreeView.ContextMenu>
<ContextMenu ItemsSource="{Binding MenuItems}">
<MenuItem Header="Copy" cal:Message.Attach="[Event Click] = [Action Copy($source, $eventArgs)]"></MenuItem>
<MenuItem Header="Cut" cal:Message.Attach="[Event Click] = [Action Cut]"></MenuItem>
<MenuItem Header="Paste" cal:Message.Attach="[Event Click] = [Action Paste($this)]" IsEnabled="{Binding IsPasteEnabled}"></MenuItem>
<ContextMenu.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="Header" Value="{Binding Name}"/>
<Setter Property="IsEnabled" Value="{Binding IsEnabled}"/>
<Setter Property="Command" Value="{Binding MenuCommand}"/>
</Style>
</ContextMenu.ItemContainerStyle>
</ContextMenu>
</TreeView.ContextMenu>
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" />
<Setter Property="IsSelected" Value="{Binding IsSelected, Mode=TwoWay}" />
</Style>
</TreeView.ItemContainerStyle>
<TreeView.Resources>
<HierarchicalDataTemplate ItemsSource="{Binding Childs}" DataType="{x:Type viewmodels:TreeListViewModel+Node}">
<TextBlock Text="{Binding Name}" />
</HierarchicalDataTemplate>
</TreeView.Resources>
</TreeView>
public void Copy(object sender, RoutedEventArgs args)
{
// to do...
}
【问题讨论】:
标签: c# wpf xaml treeview caliburn.micro