1

同じ行の他のセルの値に応じて、行の特定のセルを無効にする必要があります。

WPFまたはWPFMVVMシナリオ、どちらのソリューションも歓迎します。

私は両方を試しましたが、どれも機能しません!!!

4

2 に答える 2

2

私があなたを正しく理解していれば。

Datagrid.Columns セクション (以下のコードを参照) 内の DataGridTemplateColumn を確認することをお勧めします。これにより、列/セルに独自のテンプレートを設定し、有効なプロパティを設定できるようになります。以下は単純な解決策に過ぎず、今後は、モデルを更新する有効化チェックボックスを変更すると、行の項目が有効化されるようになります。

        <DataGrid Name="dgrgrid" AutoGenerateColumns="False">                
            <DataGrid.Columns>
                <DataGridTemplateColumn Header="Name">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding Name}" IsEnabled="{Binding Enabled}" />
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                </DataGridTemplateColumn>
                <DataGridTextColumn Header="Type" />
                <DataGridTextColumn Header="Size" />
                <DataGridTextColumn Header="Price"  />
                <DataGridCheckBoxColumn Header="Row Enabled" Binding="{Binding Enabled}" />
            </DataGrid.Columns>
        </DataGrid>

コード ビハインドのために、以下に示すいくつかのプロパティを持つ Cheese という名前のクラスの単純な監視可能なコレクションがあります。(これは基本的な MV-VM 手法です)

于 2012-07-31T22:45:39.727 に答える
0

@Grenterに感謝します。Converterクラスを実装し、xamlファイルに静的リソースとして実装することで解決しました。また、セル更新イベントまたはセル更新イベントを使用して同じことができることを理解し、xamlコードビハインドに数行のコードを記述しましたが、これは一般的には好ましくありません。

しかし、コンバーターは確かに前進する方法です。

どうもありがとう!!!

于 2012-08-01T15:35:51.097 に答える