[英]Provide a Collection as source to property in WPF Propertygrid
我具有字符串類型的以下屬性。
[Category("General")]
[DisplayName("Book Name")]
public string BookName
{ //getter;
//setter;
}
將包含此屬性的對象綁定到propertygrid時 ,我想提供一個字符串類型列表作為源。
List<string> booksource = new List<string>();
當Property類型為enum時,它將自動填充組合框,我想通過集合實現相同的功能。
編輯 :展開:
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,以便用戶可以選擇其中的任何一個。
遲到總比不到好 ;-)
使用擴展WPF工具包中的PropertyGrid,您可以這樣進行:
enum BookType
{
Novel = 0,
Magazine = 1
}
public class BookItemsSource : IItemsSource
{
public ItemCollection GetValues()
{
var books = new ItemCollection();
books.Add("Book 1");
books.Add("Book 2");
books.Add("Book 3");
return books;
}
}
public class Class1
{
string _bookname = "Book 1";
BookType _booktype = BookType.Magazine;
[Category("General")]
[DisplayName("Book Name")]
[ItemsSource(typeof(BookItemsSource))]
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;
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.