C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: WPFのバインド方法


(過去ログ 101 を表示中)

[トピック内 6 記事 (1 - 6 表示)]  << 0 >>

■59924 / inTopicNo.1)  WPFのバインド方法
  
□投稿者/ ash (1回)-(2011/06/12(Sun) 18:26:01)

分類:[.NET 全般] 

ListBoxに項目があり、そこで選んだものの詳細を写す窓を用意しました。
この窓には様々なコントロールがあり設定を変えることで選択した項目の情報を書き換えられるというものです。

個別に選択したときの挙動は作成できたのですが、複数の項目を同時に選択した場合のプログラムに手間取っております。

具体的には
・複数選択して同じ値のものは表示
・値が違うものは「-」といったように決まった文字を表示
・コントロールにより値を変更すると選択されているすべての項目に値を適用する

というものです。
バインドを使わずに値変更時のイベントを一つづつ作成すれば実装できるのは理解できるのですが、何か良い手がないかと模索しております。
ご教授頂ければ幸いです。
よろしくお願いします。
引用返信 編集キー/
■59971 / inTopicNo.2)  Re[1]: WPFのバインド方法
□投稿者/ くり太郎 (27回)-(2011/06/14(Tue) 14:21:40)
くり太郎 さんの Web サイト
No59924 (ash さん) に返信

複数選択した場合に同じ値というのは、同じインスタンスという意味でしょうか?
基本的には、単一の項目をバインドさせてやればよいだけだと思うので、選択中のインスタンスをバインドオブジェクトとして設定してあげればよいと思います。
また、複数選択して異なる内容だった場合は、それ専用のインスタンスをダミーで生成してあげればよいのではないでしょうか?
引用返信 編集キー/
■59993 / inTopicNo.3)  Re[2]: WPFのバインド方法
□投稿者/ ash (2回)-(2011/06/15(Wed) 08:58:09)
分かりにくくてすいません。補足しておきます。

Aは X座標:10 Y座標:20 フラグ:Ture
Bは X座標:10 Y座標:30 フラグ:Flase

とします。

Aを選択時
X座標:10 
Y座標:20
フラグ:Ture

Bを選択時
X座標:10
Y座標:30
フラグ:Flase

AとBを選択時
X座標:10
Y座標:-
フラグ:-

と表示させ、AとB選択時にYに40を入力すると「AのY座標」も「BのY座標」も40が代入される
というものを目指しております。

引用返信 編集キー/
■60002 / inTopicNo.4)  Re[3]: WPFのバインド方法
□投稿者/ shu (786回)-(2011/06/15(Wed) 12:42:51)
No59993 (ash さん) に返信

DataTableで各項目を管理すれば項目毎の相違をチェックするだけなので
処理が統一できるのではないでしょうか。
引用返信 編集キー/
■60056 / inTopicNo.5)  Re[3]: WPFのバインド方法
□投稿者/ くり太郎 (28回)-(2011/06/17(Fri) 14:34:07)
くり太郎 さんの Web サイト
No59993 (ash さん) に返信

この場合、バインドするモデルは ViewModel 側で作っておいて、コマンドを実行する際に、対象となる Model 側に値をコピーする処理を自力で行う必要がありますね。

つまり Model を直接 ViewModel のインスタンスとせずに、 ViewModel 専用の Model を選択状態に応じて都度生成させる設計がベストだと思います。
引用返信 編集キー/
■60073 / inTopicNo.6)  Re[4]: WPFのバインド方法
□投稿者/ ash (3回)-(2011/06/18(Sat) 20:00:27)
ありがとうございます。
私も同じ結論に達しました。

特殊なバインドでクリアできないかと甘いことを考えていたのですが無理そうです。
地道に実装することにしました。

失礼いたします。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -