在列表视图的一行中显示具有单独单击操作的三个项目(c# WPF)

问题描述 投票:0回答:1

我正在与列表视图作斗争。

我有这个列表视图:

<ListView Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="3" x:Name="listViewCombined" ItemTemplate="{StaticResource ItemTemplate}" Margin="5">
    <ListView.ItemsPanel>
        <ItemsPanelTemplate>
            <VirtualizingStackPanel/>
        </ItemsPanelTemplate>
    </ListView.ItemsPanel>
</ListView>

这是模板:

<Window.Resources>
    <DataTemplate x:Key="ItemTemplate">
        <Grid>
            <Grid.ColumnDefinitions>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
                <ColumnDefinition Width="Auto"/>
            </Grid.ColumnDefinitions>
            <TextBlock Text="{Binding Dispo}" Grid.Column="0" Margin="5" MouseLeftButtonDown="DispoItem_Click"/>
            <TextBlock Text="{Binding MATNR}" Grid.Column="1" Margin="5" MouseLeftButtonDown="MATNRItem_Click"/>
            <TextBlock Text="{Binding MAKTG}" Grid.Column="2" Margin="5" MouseLeftButtonDown="MAKTGItem_Click"/>
        </Grid>
    </DataTemplate>
</Window.Resources>

上面代码的结果: Screenshot

但是我试图将其放在一行中(就像一组),并将每个新组放在行中 每列都需要有单独的点击操作。 首先,我开始使用 3 个列表视图,但每个视图都有自己的垂直滚动条,并且一行中的项目属于在一起。所以我需要一个包含三列的滚动视图,每列都有自己的点击操作

c# wpf listview
1个回答
0
投票

首先,您应该看看 WPF 中的 MVVM 模式,并使用 ViewModel、命令和绑定:) 但这完全是另一个主题。

要处理手头的问题,定义点击处理程序很容易。在 XAML 中,只需执行您所做的操作,处理程序后面的代码如下所示:

private void DispoItem_Click(object sender, MouseButtonEventArgs e)
{

}

您可以通过

TextBlock
参数轻松访问
sender

© www.soinside.com 2019 - 2024. All rights reserved.