我正在使用ItemsControl来显示一个数据绑定的项目列表,每个项目的DataTemplate的核心是一个Grid,我在这个Grid上放置了所有绑定的控件。
我希望能够点击列表中每个项目的整个区域。但我无法想出如何使这个区域可点击。
有什么建议可以让整个Grid区域可点击吗?
我正在使用ItemsControl来显示一个数据绑定的项目列表,每个项目的DataTemplate的核心是一个Grid,我在这个Grid上放置了所有绑定的控件。
我希望能够点击列表中每个项目的整个区域。但我无法想出如何使这个区域可点击。
有什么建议可以让整个Grid区域可点击吗?
要使某个元素可点击,通常可以将其包装在 Button 中。如果它应该是“不可见的”,您可以更改模板:
<Button.Template>
<ControlTemplate TargetType="{x:Type Button}">
<ContentPresenter />
</ControlTemplate>
</Button.Template>
MouseLeftButtonUp
事件绑定到该命令。 <Grid Name="grid" Height="30" ForceCursor="True" Cursor="Hand">
<acb:CommandBehaviorCollection.Behaviors>
<acb:BehaviorBinding Event="MouseLeftButtonUp" Command="{Binding Path=DataContext.EditEventCommand, RelativeSource={RelativeSource AncestorType={x:Type self:Dashboard}}}" CommandParameter="{Binding}" />
</acb:CommandBehaviorCollection.Behaviors>
</Grid>
非MVVM解决方案的修改。
上述代码片段仍可在您未按照MVVM指南设计应用程序时使用,因为您实质上只是将其绑定到了后台代码中的一个命令。
但是,如果您不想费事地定义命令,您可以简单地指定要挂钩的事件,如下所示:
在XAML文件中使用<Grid MouseLeftButtonUp="Grid_MouseLeftButtonUp">
。
在后台代码中:
private void Grid_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
}