私の目標は、列挙型と同等の文字列をデータバインドすることです。
public enum Language
{
Unknown=0,CSharp=1,VB=2,VisualCpp=3,FSharp=4
}
public enum ProjectType
{
Unknown=0,ConsoleApplication=1,ClassLibrary=2
}
これが私のモデルです:
class PLanguage
{
public Language EnumLanguage { get; set; }
public string ImagePath { get; set; }
public List<ProjectType> EnumTypes { get; set; }
}
MyViewModel:
class PLanguageViewModel : ViewModelBase
{
public PLanguage PLanguage { get; set; }
private ObservableCollection<string> _typeCollection;
public PLanguageViewModel(PLanguage pLanguage)
{
PLanguage = pLanguage;
}
public ObservableCollection<string> TypeCollection
{
get{} //CAST PLanguage.EnumTypes FROM ENUM TO STRING
}
public string ImagePath
{
get { return PLanguage.ImagePath; }
set
{
if (PLanguage.ImagePath != value)
{
PLanguage.ImagePath = value;
RaisePropertyChanged(() => ImagePath);
}
}
}
public static String ConvertToString(Enum eEnum)
{
return Enum.GetName(eEnum.GetType(), eEnum);
}
}
ご覧のとおり、ProjectType型の列挙型のリストがあります。これらを列挙値と等しい文字列の監視可能なコレクションに変換して、ビューで簡単にデータバインドできるようにします。そのコレクションの依存関係プロパティを作成する必要がありますが、どうすればよいですか?