スポンサーサイト

--.--.--.--.--:--
上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

ComboBoxのDisplayMemberPathとKeyValuePair

2012.09.26.Wed.21:57
またもやWinRTのバグにぶち当たったのか…?

ComboBoxのItemsSourceに以下のようなKeyValuePairのListをセットし、DisplayMemberPathで、"Value"を表示しようとするとエラーを吐く。


var test = new List<KeyValuePair<int, string>>{
new KeyValuePair<int, string>(0, "黒"),
new KeyValuePair<int, string>(1, "茶"),
new KeyValuePair<int, string>(2, "赤")
};
combobox.ItemsSource = test;
combobox.DisplayMemberPath = "Value";


Cannot get 'Value' value (type 'String') from type 'System.Runtime.InteropServices.WindowsRuntime.CLRIKeyValuePairImpl`2[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=…],[System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=…]], mscorlib, ・・・

といった例外が出力される。

WPFで同じコードを試してみるとちゃんと「黒・茶・赤」が出たので、書き方は間違ってないはず。

それっぽいバグレポートはあったけど、どうなったんだろう…

とりあえず、こんなクラス作って暫定的に対応。


public class KeyValue<Tkey,Tvalue>
{
public Tkey Key { get; set; }
public Tvalue Value { get; set; }
}
スポンサーサイト
コメント

管理者のみに表示
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。