【发布时间】:2019-10-04 18:41:12
【问题描述】:
我在 WPF 中使用 Kendo Telerik RadTreeView 控件。我有每个 RadTreeViewItem 的功能,我需要显示一个按钮,我可以这样做。
现在每个RadTreeViewItem旁边的按钮都会有事件/命令,需要打开弹出窗口并传递当前节点数据。
我已经尝试使用按钮单击事件背后的代码,它工作正常。但根据要求,我们应该只使用命令而不是事件背后的代码。
这是我添加按钮的代码..
<HierarchicalDataTemplate x:Key="BuildingStructure"
ItemsSource="{Binding StructureLevels}"
ItemContainerStyle="{StaticResource levelNodeStyle}">
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Width="250"
Text="{Binding Name}"
HorizontalAlignment="Left"/>
<Button
Panel.ZIndex="100"
BorderThickness="0"
BorderBrush="Transparent"
Background="Black"
Grid.Column="1"
VerticalAlignment="Stretch"
Margin="0 2 0 5">
<Image
Width="20"
Height="20"
Source="/Project;component/Resources/Images/03-Add.png"/>
<i:Interaction.Triggers>
<i:EventTrigger EventName="MouseLeftButtonDown">
<i:InvokeCommandAction Command="{Binding TestRadTreeCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</Button>
</Grid>
</HierarchicalDataTemplate>
请查看图片以供参考:
提前谢谢...!!
【问题讨论】:
-
Button具有Command属性,因此没有理由使用EventTrigger和InvokeCommandAction来处理MouseLeftButtonDown事件。TestRadTreeCommand是在哪里定义的? -
TestRadTreeCommand在 ViewModel 中定义,我尝试使用 Command 属性但它没有被调用
标签: wpf events telerik radtreeview custom-button