簡體   English   中英

在WPF中的DataGrid中選擇一行時如何打勾CheckBoxColumn

[英]How to tick a CheckBoxColumn when I select a row in a DataGrid in WPF

我的DataGrid列出了保存在數據庫中的聯系人:

<DataGrid ItemsSource="{Binding ContactsView}"
            Grid.Row="2" Grid.Column="0" Grid.ColumnSpan="2"
            x:Name="contactsDataGrid" AutoGenerateColumns="False"
            EnableRowVirtualization="True" Padding="10"
            CanUserAddRows="False"
            RowDetailsVisibilityMode="VisibleWhenSelected"
            SelectionChanged="contactsDataGrid_SelectionChanged">
    <DataGrid.Columns>
        <DataGridCheckBoxColumn Header="Select" Width="50" />
        <DataGridTextColumn Binding="{Binding Salutation}" Header="Salut." />
        <DataGridTextColumn Binding="{Binding FirstName}" Header="First Name" />
        <DataGridTextColumn Binding="{Binding LastName}" Header="Last Name" />
        <DataGridTextColumn Binding="{Binding EmailAddress}" Header="Email Address" />
        <DataGridTextColumn Binding="{Binding Mobile}" Header="Mobile Number" />
        <DataGridTextColumn Binding="{Binding BroadDesignation}" Header="Broad Designation" />
        <DataGridTextColumn Binding="{Binding Designation}" Header="Designation" />
    </DataGrid.Columns>
</DataGrid>

用戶應通過單擊選擇一行。 進行選擇后,該聯系人將添加到另一個列表中,該列表稍后使用:

private List<Contact> SelectedContacts = new List<Contact>();
private void contactsDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    DataGrid ThisGrid = (DataGrid)sender;            
    Contact SelectedContact = (Contact)ThisGrid.SelectedItem;

    if (!SelectedContacts.Contains(SelectedContact))
        SelectedContacts.Add(SelectedContact);
}

我該如何做,以便當用戶進行選擇時, CheckBoxColumn變為選中該復選框的狀態,以便用戶知道他們已經選擇了該行?

我會在您的類中添加另一個名為IsSelected SelectionChanged方法中,您只需將屬性設置為true並刷新dataGrid。

類似於以下內容(未經測試):

private void contactsDataGrid_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
    DataGrid ThisGrid = (DataGrid)sender;            
    Contact SelectedContact = (Contact)ThisGrid.SelectedItem;
    SelectedContact.IsSelected = true;
    contactsDataGrid.Items.Refresh();

    if (!SelectedContacts.Contains(SelectedContact))
        SelectedContacts.Add(SelectedContact);
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM