次のクラス階層があるとしましょう:
public static class Constants
{
public enum MyEnum
{
Value1 =0,
Value2,
Value3
}
}
public class Data : INotifyPropertyChanged
{
public Data(string name, ushort id, Constants.MyEnum e)
{
DataName = name;
DataId = id;
DataEnum = e;
}
#region Properties
// get / set implementation not shown
public string DataName;
public ushort DataId;
public Constants.MyEnum DataEnum;
#endregion
// INotifyPropertyChanged implementation not shown
// Fields implementation not shown
}
public class DataContainer
{
public DataContainer()
{
ContainedData = new ObservableCollection<Data>();
ContainedData.Add(new Data("data1", 1, Constants.MyEnum.Value1));
ContainedData.Add(new Data("data2", 2, Constants.MyEnum.Value2));
ContainedData.Add(new Data("data3", 3, Constants.MyEnum.Value3));
}
public ObservableCollection<Data> ContainedData;
}
DataContainer の ContainedData を ListView にデータバインドし、以下を含む ItemTemplate を作成したいと思います。
私の目標 :
- コンボボックスに、可能なすべての MyEnum 値を表示できるようにしたい
- Combobox に DataEnum フィールドへの TwoWay バインディングを実装させたい
質問:
- 記載されている目標を達成するにはどうすればよいですか?
- データのプロパティにはさまざまな種類があります。それはTextBoxにとって重要ですか?もしそうなら、それらを文字列としてのみ公開する必要がありますか? データを検証するにはどうすればよいですか? (つまり、ユーザーが DataId フィールドなどで「abc」を渡さないようにします。)