次の文字列型のプロパティがあります。
[Category("General")]
[DisplayName("Book Name")]
public string BookName
{ //getter;
//setter;
}
このプロパティを含むオブジェクトを propertygrid にバインドするときに、文字列型のリストをソースとして提供したいと考えています。
List<string> booksource = new List<string>();
プロパティが列挙型の場合、コンボボックスに自動的に入力されます。コレクションを通じて同じ機能を実現したいと考えています。
編集:展開:
enum BookType
{
Novel = 0,
Magazine = 1
}
class Class1
{
string _bookname = "Book 1";
BookType _booktype = BookType.Magazine;
[Category("General")]
[DisplayName("Book Name")]
public string BookName
{
get { return this._bookname; }
set { this._bookname = value; }
}
[Category("General")]
[DisplayName("Book Type")]
public BookType BookType
{
get { return this._booktype; }
set { this._booktype = value; }
}
}
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
Class1 obj = new Class1();
this.wpfpropertygrid.SelectedObject = obj;
}
}
上記のコードの場合、propertygrid は、プロパティ BookType のアイテム「Magazine」と「Novel」を含むコンボボックスと、プロパティ BookName のテキスト「Book 1」を含むテキスト ボックスを表示します。明示的にソースを提供できるコンボボックスとして表示されるプロパティ BookName が必要です。ユーザーがそれらのいずれかを選択できるように、リスト {"Book 1","Book 2","Book 3"} をプロパティ BookName にバインドしたいと思います。