WPF コレクション要素のメソッドへのバインド
-
19-09-2019 - |
質問
次のシナリオのベスト プラクティス (または実用的な解決策) を探しています。
を持っています Employee
クラス:
public class Employee
{
public string DisplayName
{ get; set; }
// It is important that this method has a parameter
public string GetSomething(string param)
{ return param + DisplayName; }
}
私は持っています List<Employee>
XAML の ComboBox にバインドされる型オブジェクト。
各従業員の DisplayName は ComboBox に正しく表示されていますが、GetSomething メソッドの戻り値を表示するにはどうすればよいですか? 全従業員に対する正確なパラメータを使用 DisplayName ではなく従業員ごとに?
メソッドにバインドするのは問題ありませんが、複数のインスタンス (リスト内の従業員オブジェクトごと) にバインドするにはどうすればよいですか? とともに ObjectDataProvider
従業員リストの各従業員オブジェクトではなく、1 つの正確なインスタンス (またはクラス) にのみバインドできます。
解決
手間を省いてください:ビュー モデルを使用して、各従業員に必要な値を返す個別のプロパティを作成します。より詳細な答えを得るには、パラメーターがどこから来たのかを知る必要があります。
他のヒント
ビューモデルの使用が間違いなく望ましい方法であるという @Kent Boogaart に同意します (ベスト プラクティスでもあります)。
私が以前に (Model-View-ViewModel について詳しく知る前に) 使用したもう 1 つの方法は、 バインディングコンバータ. 。Employee クラスまたは DisplayName プロパティのいずれかにバインドし、そのパラメーターをパラメーターとしてバインディング コンバーターに渡します。
所属していません StackOverflow