-3

クラスのすべてのプロパティ名をバインドして一覧表示する方法

<ListBox>
<TextBlock Name="{Binding WHAAAAT???!}" />
</ListBox>

クラス:

public class DaysOfWeek
{    
    public bool Monday {get; set;}
    public bool Tuesday { get; set; }
    public bool Wednesday { get; set; }
    public bool Thursday { get; set; }
    public bool Friday { get; set; }
    public bool Saturday { get; set; }
    public bool Sunday { get; set; }
}

このコンテンツをリスト ボックスに配置したいと思います。これで私を助けてください。

Monday
Tuesday
Wednesday 
Thursday 
Friday 
Saturday
Sunday 

ありがたい。

4

3 に答える 3

2

ここに示すように、反射を使用する必要があるようです

using System.Reflection;  // reflection namespace

// get all public static properties of MyClass type
PropertyInfo[] propertyInfos;
propertyInfos = typeof(MyClass).GetProperties(BindingFlags.Public |
                                              BindingFlags.Static);
// sort properties by name
Array.Sort(propertyInfos,
        delegate(PropertyInfo propertyInfo1, PropertyInfo propertyInfo2)
        { return propertyInfo1.Name.CompareTo(propertyInfo2.Name); });

// write property names
foreach (PropertyInfo propertyInfo in propertyInfos)
{
  Console.WriteLine(propertyInfo.Name);
}
于 2012-04-25T21:57:07.590 に答える
1

私の解決策:

Classes.DaysOfWeek _DaysOfWeek;

_DaysOfWeek = new Classes.DaysOfWeek();
var listProp = _DaysOfWeek.GetType().GetProperties().ToList();

List<String> newList = new List<String>{};
foreach(var item in listProp){
newList.Add(item.Name);
}
listBox_Days.ItemsSource = newList;

わかりやすい!

于 2012-04-25T22:05:26.823 に答える
0

MVVM モデルを調べます (たとえば、新しい Panorama / Pivot / Databound サンプル アプリケーションを作成します)。これは、新しいコードを記述しようとしている間、最も時間を短縮し、その間非常にクリーンな状態を維持するモデルです。

幸運を ;)

于 2012-04-26T14:37:54.620 に答える