3

データを編集および削除するための2つのボタンが関連付けられたWPFデータグリッドがあります。理想的には、グリッドでアイテムが選択されていないときにこれらのボタンを無効にするか、非表示にしたいと思います。どうすればこれにアプローチできますか?

それが重要な場合、私のデータグリッド XAML は次のとおりです。

<DataGrid AutoGenerateColumns="True" Margin="10,174,12,35" Name="dataGridArchiveQueue" Visibility="Visible" AlternatingRowBackground="#01000000" BorderBrush="#FF688CAF" 
                              HorizontalGridLinesBrush="#37000000" VerticalGridLinesBrush="#37000000" CanUserAddRows="False" CanUserDeleteRows="False" IsReadOnly="True" 
                              SelectedItem="{Binding SelectedItemArchiveGrid}" Grid.ColumnSpan="2">
                              <DataGrid.Resources>
                        <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}"
                                                         Color="LightBlue" />
                        </DataGrid.Resources>

                    </DataGrid>
4

2 に答える 2

2

ボタンで DataTrigger を使用してボタンの無効化/表示を処理するか、ボタンにバインドされるコマンドの CanExecuteChange イベントでロジックを記述することができます

データトリガー

        <Button.Style>
            <Style>
                <Style.Triggers>
                    <DataTrigger Binding="{SelectedItemArchiveGrid}" Value="{x:Null}">
                        <Setter Property="IsEnabled"Value="False"></Setter>
                    </DataTrigger>
                </Style.Triggers>
            </Style>
        </Button.Style>

指示

> public RelayCommand<object> DeletCommand { get; set; }
> 
> DeletCommand = new RelayCommand<object>(OnDelete, OnDeletCanExecute);
> 
> private void OnDelete(object obj) { }
> 
> private bool OnDeletCanExecute(object obj)  {
     return SelectedItemArchiveGrid != null;  }

XAML

<Button Content="Delete" Command="{Delete Command}"/>
于 2012-09-04T04:10:45.113 に答える
0

現在選択されている項目のデータ テンプレートを変更できます。

于 2012-09-04T04:10:29.573 に答える