我覺得我已經錯過了一些明顯的綁定屬性值,但在Silverlight創建一個自定義的控制,如果我能作爲公共聲明屬性的時候,就會使XAML聲明時被曝光,所以我可以很容易地做這樣的事情:聲明列表,並通過XAML自定義Silverlight控件
public class MyControl : UserControl
{
public string Title {get; set;}
}
而且這樣的:
<local:MyControl Title="Hello World" />
但是性能並不總是簡單的類型,我可能有一個複雜的特性,如定義1列或多列的列表並確定一個字段綁定到我噸。與現有的控制用於定義XAML這些值的語法是直截了當:
<local:MyControl Title="People List">
<local:MyControl.Columns>
<local:MyControlColumn Heading="Column 1" Binding="{Binding Name}" />
<local:MyControlColumn Heading="Column 2" Binding="{Binding Age}" />
</local:MyControl.Columns>
</local:MyControl>
但是我在如何使這項工作在類定義茫然:
public class MyControl : UserControl
{
public string Title {get; set;}
public IEnumerable ItemSource {get; set;}
public ObservableCollection<MyControlColumn> Columns {get; set;} // ?
}
public class MyControlColumn
{
public string Heading {get; set;}
public ??? Binding {get; set;} // ?
}
任何人都可以點我在正確的方向來製作暴露列表和綁定屬性?
這確實描述了我在做什麼 - 我實際上需要一個控件,它的行爲像一個基於設置的高度自定義的DataGrid *或* ListBox。我打算讓我的類簡單地包裝和重用這些控件,但由於提供的值不會直接在這些控件中(我不想公開所有屬性),我不能只從其中一個繼承。 – David 2009-12-01 17:28:10