简体   繁体   English

如何在WPF中使用ListView选择单个单元格

[英]How to select an individual cell using ListView in WPF

I have created a small app, for which View part is as below. 我创建了一个小应用,其“视图”部分如下所示。 I have used ListView for showing my data. 我已经使用ListView来显示我的数据。 This table (ListView) is being updated once I enter the data and click on Save. 输入数据并单击“保存”后,将更新该表(ListView)。 After which if I click on the data, the whole row is selected. 之后,如果我单击数据,则会选中整行。 But I am not sure how to click an individual cell. 但是我不确定如何单击单个单元格。 Can I do it using ListView? 我可以使用ListView吗? If Yes how? 如果是,怎么办? Or I need some other component? 还是我需要其他组件?

VehicalForm.xaml VehicalForm.xaml

<Window x:Class="Seris.VehicalForm"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="MainWindow" Height="500" Width="600">
<WrapPanel Orientation="Vertical" Margin="10 " >
    <Label Content="Vehical No" HorizontalAlignment="Left"/>
    <TextBox Name="VehicalNo_Text" Height="23" Width="80" TextWrapping="Wrap" Text="{Binding VehicalNo}"  HorizontalAlignment="Left" />
    <Label Content="Model" HorizontalAlignment="Left"/>
    <TextBox Name="Model_Text" Height="23" Width="80" TextWrapping="Wrap" Text="{Binding Model}" HorizontalAlignment="Left" />
    <Label Content="Manufacturing Date" HorizontalAlignment="Left"/>
    <DatePicker Name="ManufacturingDate_DateTime" SelectedDate="{Binding ManufacturingDate, Mode=TwoWay}"/>
    <Label Content="IU No" HorizontalAlignment="Left"/>
    <TextBox Height="23" Width="80" Name="IUNO_Text" TextWrapping="Wrap" Text="{Binding IUNo}" HorizontalAlignment="Left"/>
    <Label Content="Personnel" HorizontalAlignment="Left"/>
    <ComboBox Name="Personnel_Combo" Text="{Binding Personnel}" HorizontalAlignment="Left" Width="116"/>
    <Separator Height="20" RenderTransformOrigin="0.5,0.5" Width="16"/>
    <Button Name="Save_Button" Command="{Binding SaveButton_Command}" Content="Save" Width="66"/>
    <Label x:Name="Error_Label" Content="{Binding ErrorMessage, UpdateSourceTrigger=PropertyChanged}" Foreground="Red" HorizontalAlignment="Left" Height="41" Width="137"/>
    <ListView Height="294" Width="371" ItemsSource="{Binding ListItems, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" >
        <ListView.View>
            <GridView>
                <GridViewColumn Header="Vehical No" DisplayMemberBinding="{Binding VehicalNo}" />
                <GridViewColumn Header="Model" DisplayMemberBinding="{Binding Model}" />
                <GridViewColumn Header="ManufacturingDate" DisplayMemberBinding="{Binding ManufacturingDate}" />
                <GridViewColumn Header="IUNo" DisplayMemberBinding="{Binding IUNo}" />
                <GridViewColumn Header="Personnel" DisplayMemberBinding="{Binding Personnel}" />
            </GridView>
        </ListView.View>
    </ListView>
</WrapPanel>
</Window>

You can achieve this with a DataGrid. 您可以使用DataGrid来实现。 Replace your listview with something like this; 像这样替换您的列表视图;

        <DataGrid Height="294" Width="371" ItemsSource="{Binding ListItems, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" SelectionUnit="Cell" SelectionMode="Single" AutoGenerateColumns="False">
        <DataGridTextColumn Header="Vehical No" Binding="{Binding VehicalNo}" />
        <DataGridTextColumn Header="Model" Binding="{Binding Model}" />
        <DataGridTextColumn Header="ManufacturingDate" Binding="{Binding ManufacturingDate}" />
        <DataGridTextColumn Header="IUNo" Binding="{Binding IUNo}" />
        <DataGridTextColumn Header="Personnel" Binding="{Binding Personnel}" />
    </DataGrid>

Two important properties of the DataGrid are; DataGrid的两个重要属性是:

 SelectionUnit="Cell" SelectionMode="Single"

These allow you to control how a user can select items. 这些使您可以控制用户如何选择项目。 In this example you can only select a single cell. 在此示例中,您只能选择一个单元格。

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM