2017-08-03 22 views
0

我的DataGrid列表中的聯繫人:如何剔一個CheckBoxColumn,當​​我在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改變的狀態下複選框被選中以便用戶知道他們已經選擇了那一行?

回答

0

我會爲您的課程添加另一個屬性,名稱爲IsSelected。在SelectionChanged方法中,您只需將該屬性設置爲true並刷新數據網格即可。

像下面這樣(未測試):

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); 
} 
+0

因爲跟我實際的數據模型,我不知道如果我想這樣做,但我可以改變我的綁定,給我的ContactsViewModel和將其添加到那裏 – Ortund

+0

使用數據模型中的DataAccessObject和映射 – Ben

+0

如果我第二次單擊某一行,則在刪除選擇時遇到問題。還有什麼機會可以幫助你呢? – Ortund

相關問題