我已经在这个问题上工作了很长时间。尽管我内心的人说“不要这样做”,但现在是问路的时候了。
我正在使用 MVVM 设计模式在 WPF C# 中进行编码。我们尽量严格遵守模式,并且在代码后面不放任何东西,除非没有选择或这样做完全不合理。话虽如此,我正在使用 Telerik RadTreeView。这是我的 XAML 中的一个片段:
<telerik:RadTreeView IsExpandOnSingleClickEnabled="True" IsLineEnabled="True" Margin="5"
ItemsSource="{Binding ItemsView}"
SelectedItem="{Binding SelectedWidget, Mode=TwoWay}"
ItemTemplate="{StaticResource NodeTemplate}" />
目前该树工作正常,因此如果您突出显示一个树项并单击视图上的“确定”按钮,一切都很好。但是,我还需要允许用户双击其中一个树项。这意味着我的视图模型中已经有一个命令和方法,protected override void OkAction()以及所需的逻辑。Telerik 提供了一个名为ItemDoubleClick的属性,该属性应该为树项双击提供功能。但我找不到任何东西可以让我在视图模型中执行此操作。换句话说,我该如何进行绑定?我们的项目中还有一个行为设置,用于双击我被告知可以使用,但我没有行为经验。我对 WPF 还是有点兴趣。
如果有帮助,这里是 Telerik 文档的链接:http ://www.telerik.com/help/wpf/radtreeview-events-overview.html
我将不胜感激任何人可以提供的任何帮助或指导。
试试这个斯坦:
<Grid.Resources>
<DataTemplate x:Key="WidgetTemplate">
<StackPanel Orientation="Horizontal">
<Image Source="/Resources/gear1.png" Margin="1" Stretch="None" />
<TextBlock Text="{Binding Name}" VerticalAlignment="Center" Margin="6,0,0,0" />
</StackPanel>
</DataTemplate>
<HierarchicalDataTemplate x:Key="NodeTemplate" ItemsSource = "{Binding Children}" ItemTemplate="{StaticResource WidgetTemplate}">
<TextBlock Text="{Binding Name}"/>
</HierarchicalDataTemplate>
</Grid.Resources>