/ /選択した行にあるdatagridの特定のコンテキストメニューを隠すwpf mvvm - c#、wpf、mvvm、datagrid、contextmenu

選択した行にあるDataGridの特定のコンテキストメニューを非表示にするwpf mvvm - c#、wpf、mvvm、datagrid、contextmenu

WPF Mvvmを使用してdatagridに問題が1つありました。コンテキストメニューをdatagridに設定しました。 これが私のコードです。

 <DataGrid.ContextMenu>
<ContextMenu IsEnabled="{Binding IsEnableCaseRefNo}"
DataContext="{Binding PlacementTarget.DataContext, RelativeSource={RelativeSource Self}}"  >
<MenuItem Header=" - View Case" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding ContextCommand}" CommandParameter="VCD"></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
<MenuItem Header=" - Cheque" Visibility="{Binding SyncColumnVisibility, Converter={StaticResource visibilityConverter}}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding ContextCommand}" CommandParameter="BMK"></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
<MenuItem Header=" - Cash" Visibility="{Binding SyncColumnVisibility, Converter={StaticResource visibilityConverter}}">
<i:Interaction.Triggers>
<i:EventTrigger EventName="Click">
<i:InvokeCommandAction Command="{Binding ContextCommand}" CommandParameter="UNBMK"></i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</MenuItem>
</ContextMenu>
</DataGrid.ContextMenu>

可視性を使用してコンテキストメニューを表示および非表示にできます財産。しかし今、私はユーザー選択時に " - チェック"コンテキストメニューを有効/無効にしたいです。寄付列に100ドルを超える金額がある場合に[チェック]コンテキストメニューを無効にするにはどうすればよいですか(既にdatagridに表示されています)。

これが私のdatagridです:

 <DataGrid Name="dgv" Background="WhiteSmoke" AutoGenerateColumns="False" CanUserAddRows="False" SelectedItem="{Binding SelectedItems,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
CanUserDeleteRows="False" Grid.Row="2" ItemsSource="{Binding LstcaseHearingModel,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
Grid.Column="2" HorizontalAlignment="Stretch" >

助けてくれてありがとう。 カエル

回答:

回答№1は0
  1. SelectedCellsChangedイベントを使用して目的の項目を取得してください。

        private void Dgrd_SelectedCellsChanged(object sender, SelectedCellsChangedEventArgs e)
    {
    SomeEntity item = (SomeEntity) Dgrd.CurrentItem;
    
    if(item.Donate > 100)
    viewModel.SyncColumnVisibility = Visibility.Collapsed;
    else
    viewModel.SyncColumnVisibility = Visibility.Visible;
    }
    

ViewModelのSelectedItemプロパティにSelectedItemプロパティをバインドしているので。だからあなたはそのセッターで状態をチェックすることができます。