Ich habe ein Problem mit WPF Mvvm auf Datagrid. Ich habe das Kontextmenü auf Datagrid eingestellt. hier ist mein code.
<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>
Ich kann das Kontextmenü mithilfe der Sichtbarkeit ein- und ausblendenEigentum. aber jetzt möchte ich das "-Cheque" -Kontextmenü nach Benutzerauswahl aktivieren / deaktivieren. Wie kann ich das "Check" -Kontextmenü deaktivieren, wenn sich in Spendenspalten (die bereits in Datagrid angezeigt werden) 100 Dollar ergeben.
Hier ist mein 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" >
Danke für jede Hilfe. Frosch
Antworten:
0 für die Antwort № 1Verwenden Sie das SelectedCellsChanged-Ereignis, um das gewünschte Element abzurufen.
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; }
Wenn Sie die SelectedItem-Eigenschaft an die SelectedItems-Eigenschaft Ihres ViewModel binden. So können Sie die Bedingung im Setter prüfen.