1

ポイントで線を引いています。ユーザーがそのポイントを編集できるようにしたい。そのために、 anObservableCollection<Point>DataGrid(X, Y 列) にバインドしました (実際にはDataPointライブラリを使用しているためですが、それでも aStructです)。

問題は、構造体にバインドしていて、構造体が変更されることを意図していないため、コレクション自体ではなくコレクションのコピーを変更していることです。X、Y プロパティが公開されている通常のクラスに切り替えたいのですが、できません。構造体のコレクションにバインドして、そのコレクションを変更するにはどうすればよいですか? ありがとう。

それが不可能な場合、ループを実行して新しいリストにデータを入力し、最初の ObservableCollection をその新しいリストの項目に置き換えるために、DataGrid の VIEW 値をターゲットにするにはどうすればよいでしょうか。

myDataGrid.Itemsこれは元のデータを表し、私のセル内の実際のデータではないため、私が探しているものではありませんDataGrid

4

1 に答える 1

2

構造体は値型です。したがって、基本的にそれらにアクセスすると、コピーが取得されます。

つまり、ポイントの場合、コンストラクターを呼び出して新しい値を割り当てることによってのみ上書きできます。

yourPoint = new Point(xNew, yNew);

DataBinding では、常にプロパティを使用する必要があります。構造体をラップするクラスを定義できます。

これがすでに役立つことを願っています。それ以外の場合は、この構造体のチュートリアルもご覧ください。

于 2013-07-26T22:53:50.890 に答える