[英]DataGrid with a CheckboxColumn does not register SelectedItem
我在WPF中有一個DataGrid。 它使用MVVM綁定到ViewModel。 它僅與DataGridTextColumns配合使用,可以顯示有關我與DataGrid綁定的對象列表的信息。 單擊一行將其選中,它也可以工作,並引發一系列事件,這些事件使我能夠深入研究給定的行和派生的信息。
然后,我添加了一個DataGridCheckBoxColumn,以便可以選擇項目並將它們從列表中刪除(如果需要)。 但是,這破壞了一切。 請注意,ViewModel完全保持不變,DataGrid的SelectedItem事件現在似乎根本沒有觸發。 任何人都可以提供幫助,以便我仍然可以保留我的舊功能,但還可以保留我的復選框列,以幫助用戶快速執行他/她需要做的事情?
相關XAML:
<DataGrid Name="ArticlesOverviewDataGrid" IsReadOnly="True"
ItemsSource="{Binding Project.Articles}" IsSynchronizedWithCurrentItem="True"
Style="{StaticResource DataGridStyle}" SelectionUnit="FullRow"
AutoGenerateColumns="False" SelectionMode="Single"
SelectedItem="{Binding SelectedArticle, Mode=TwoWay}">
<DataGrid.Columns>
<DataGridCheckBoxColumn Width="65" HeaderStyle="{StaticResource DgchStyle}" Binding="{Binding IsDuplicate, UpdateSourceTrigger=PropertyChanged}" Header="Duplicate" ElementStyle="{StaticResource DataGridCheckBoxColumnElementStyle}"/>
<DataGridTextColumn Width="*" HeaderStyle="{StaticResource DgchStyle}" Binding="{Binding Name}" Header="Name" ElementStyle="{StaticResource DataGridTextColumnElementStyle}" />
<DataGridTextColumn Width="*" HeaderStyle="{StaticResource DgchStyle}" Binding="{Binding Author}" Header="Author" ElementStyle="{StaticResource DataGridTextColumnElementStyle}" />
<DataGridTextColumn Width="100" HeaderStyle="{StaticResource DgchStyle}" Binding="{Binding PublicationDate}" Header="Publication Date" ElementStyle="{StaticResource DataGridTextColumnElementStyle}"/>
</DataGrid.Columns>
<DataGrid.InputBindings>
<MouseBinding Gesture="LeftDoubleClick" Command="{Binding ShowProject}"/>
</DataGrid.InputBindings>
</DataGrid>
同樣,如果我刪除checkboxcolumn,這一切都可行,這意味着在DataGrid中選擇一個項目會很麻煩,但是我似乎找不到任何有關為什么中斷或如何解決此問題的信息。
<DataGridCheckBoxColumn Width="65" HeaderStyle="{StaticResource DgchStyle}" Binding="{Binding IsDuplicate, UpdateSourceTrigger=PropertyChanged}" Header="Duplicate" ElementStyle="{StaticResource DataGridCheckBoxColumnElementStyle}"/>
嘗試使用模板列,並使用復選框將其設置為DataTemplate
:
<DataGridTemplateColumn Width="65" HeaderStyle="{StaticResource DgchStyle}" Header="Duplicate" ElementStyle="{StaticResource DataGridCheckBoxColumnElementStyle}">
<DataTemplate>
<CheckBox IsChecked="{Binding IsDuplicate, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.