3 回答
TA贡献1966条经验 获得超4个赞
我能够使它与.NET 4.5一起使用。看起来很简单,不需要任何第三方或代码。
<ListView ItemsSource="{Binding Data}">
<ListView.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</ListView.ItemsPanel>
<ListView.ItemTemplate>
<DataTemplate>
<Grid Margin="2">
<Grid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding ShowDetailCommand}"/>
</Grid.InputBindings>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Image Source="..\images\48.png" Width="48" Height="48"/>
<TextBlock Grid.Row="1" Text="{Binding Name}" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
TA贡献1795条经验 获得超7个赞
我喜欢使用“ 附加命令行为和命令”。Marlon Grech很好地实现了“附加命令行为”。然后,可以使用这些样式为ListView的ItemContainerStyle属性分配一种样式,该样式将为每个ListViewItem设置命令。
在这里,我们设置要在MouseDoubleClick事件上触发的命令,而CommandParameter将是我们单击的数据对象。在这里,我将沿着可视化树前进以获取我正在使用的命令,但是您可以轻松地创建应用程序范围的命令。
<Style x:Key="Local_OpenEntityStyle"
TargetType="{x:Type ListViewItem}">
<Setter Property="acb:CommandBehavior.Event"
Value="MouseDoubleClick" />
<Setter Property="acb:CommandBehavior.Command"
Value="{Binding ElementName=uiEntityListDisplay, Path=DataContext.OpenEntityCommand}" />
<Setter Property="acb:CommandBehavior.CommandParameter"
Value="{Binding}" />
</Style>
对于命令,您可以直接实现ICommand,也可以使用MVVM Toolkit中提供的一些帮助程序。
- 3 回答
- 0 关注
- 1670 浏览
添加回答
举报