WPF:显示上下文菜单时仅选择一个单元格

时间:2017-05-18 18:18:45

标签: c# wpf

这段代码有什么问题?

SelectedCells.Count上的DataTrigger未启动。

<DataGrid.RowStyle>
    <Style TargetType="DataGridRow">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Exclude.Exclude,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Value="True">
                <Setter Property="Background" Value="#FFEBEBEB"/>
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=SelectedCells.Count,ElementName=dgAssets }" Value="1">
                <Setter Property="ContextMenu" Value="{StaticResource RowMenu}" />
                <Setter Property="Background" Value="Green"/>
            </DataTrigger>
        </Style.Triggers>                          
    </Style>
</DataGrid.RowStyle>

仅在选择单个单元格时才尝试显示上下文菜单。

1 个答案:

答案 0 :(得分:2)

SelectedCells的{​​{1}}属性返回名为DataGrid的内部对象。它扩展了另一个名为VirtualizedCellInfoCollection的类。它既不实现SelectedCellsCollection也不实现INotifyCollectionChanged接口。此外,其INotifyPropertyChanged属性不是依赖属性。

因此,当所选单元格的数量增加或减少时,您的绑定无法通知您的数据触发器。对于数据触发器,其值始终为0.