0

MVVM を使用して Silverlight アプリケーションに取り組んでいます。私の要件は、既存のユーザー データをデータ グリッドに表示して、最初の 2 つの列を編集不可のままにし、残りを編集可能にすることです。

開始時にデータグリッドはデータベースからデータをロードします。その時点でユーザーがデータグリッドをクリックすると、最初の 2 つの列は編集不可になります。

そのユーザーが新しい行を挿入した後(ボタンを作成し、クリックすると新しい行がグリッドの下部に追加されます)、最初の2つを含むすべての列が編集可能になります。ユーザーは [行の追加] ボタンを複数回クリックできるようになりました。ポイントは、[追加] ボタンのクリックによって作成された行を編集できるようにすることです。

昨日からこの問題で立ち往生しています。

4

1 に答える 1

0

Silverlight はわかりませんが、次のようにすればうまくいくと思います: 新しい行を追加するコマンドで、"AllRowsEditable" などのフラグを true に設定し、このプロパティの PropertyChanged をスローします。ビューで、最初の 2 つの列の IsReadonly プロパティをその "AllRowsEditable" プロパティにバインドします。

編集: DataGrid アイテムの ViewModel を記述します。たとえば、「RowViewModel」。適切な構造にするために、その ViewModel に「IsFirstPropertyReadOnly」と「IsSecondPropertyReadOnly」のような 2 つのプロパティを導入します。「...firstProperty...」はプロパティ名です。XAML で、このプロパティにバインドできます。最初の初期化では、アイテムをロードし、プロパティ値を true に設定します。そのプロパティを false に設定した後に追加されたすべてのアイテム。

于 2013-05-03T09:19:28.043 に答える