2010-11-03 32 views
0

如果我有一個簡單的目標:如何添加自定義(非依賴性)集合屬性值的值在XAML標記

class MyObject 
{ 
    public string MyValueProperty { get; set; } 
} 

,如果我要實例它在XAML和設置屬性(如如下圖),這個工程:

<local:MyObject MyValueProperty="SomeValue" /> 

但是,如果我的對象上有一個集合屬性:

class MyObject 
{ 
    public MyObject() { this.MyCollectionProperty = new List<string>(); } 

    public IList<string> MyCollectionProperty { get; set; } 
} 

然後我無法弄清楚如何通過XAML向它添加項目。我希望能夠做的是一樣的東西:

<local:MyObject> 
    <local:MyObject.MyCollectionProperty> 
     <sys:String>One</sys:String> 
     <sys:String>Two</sys:String> 
     <sys:String>etc</sys:String> 
    </local:MyObject.MyCollectionProperty> 
</local:MyObject> 

我已經試過,但我得到一個解析異常,說明我不能設置StringIList<string>類型的屬性,我知道我可以可能通過在標記中添加一個List實例來解決這個問題,但我想避免這種情況。

有什麼建議嗎?

回答

0

的工作了 - 這個問題是因爲我的屬性被定義爲IList<T>等等XAML分析器無法工作,如何實例化一個合適的實例(即使它已經實例指定

更改屬性聲明到List<string>讓它工作:

class MyObject 
{ 
    public MyObject() { this.MyCollectionProperty = new List<string>(); } 

    public List<string> MyCollectionProperty { get; set; } 
}