簡體   English   中英

具有CheckboxColumn的DataGrid不注冊SelectedItem

[英]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.

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