2

単一のプロパティを持つ非常に単純なオブジェクトを作成する必要があります。問題は、このプロパティの名前が可変であり、実行時までわからないことです。

私はc#を使用しています。

私は周りを見回して、私が望むことを行うための非常に長い方法のように見えるものをたくさん見つけました(例: Add properties at runtime )。ただし、このタイプのソリューションはかなりやり過ぎに思えるので、もっと簡単な方法があることを本当に望んでいます。

なんで?

私はWPFアプリに取り組んでいます。場合によっては、null 値に対処したいコンボ ボックスがあります。私はすでにこれに対する素晴らしい解決策をここで見つけました: http://philondotnet.wordpress.com/2009/09/18/how-to-select-null-none-in-a-combobox-listbox-listview/

ただし、このソリューションの主な問題 (2 番目のコメントで指摘されているように) は、Selector の DisplayMemberPath が設定されている場合、null 値のテキストが空白で表示されることです。これを解決する方法は、プロパティの名前が DisplayMemberPath で、値が null 値の文字列表現であるプロパティを持つオブジェクトを返すように NullItem を変更するだけです。

4

1 に答える 1

1

使い方を考えることができます

ExpandoObject

ExpandoObject が を実装していることを考慮するとIDictionary、それをキャストして次のことができます。

var expando = new System.Dynamic.ExpandoObject(); 
var expandoDic= expando as IDictionary<String, Object>;

expandoDic["Name"] = "Jane";
expandoDic["Surname"] = "Eyre";     
var name  = expandoDic["Name"]; 
var surname = expandoDic["Surname"]; 
var book = name + " " + surname;

これの出力は

「ジェーン・エア」、予想通り。

于 2013-01-25T08:52:47.637 に答える