2010-03-10 82 views
2

該方案非常簡單。我有自定義控件的只讀集合屬性,我想在XAML中設置集合的項目。就像這樣:WPF:無法在XAML中設置只讀集合的​​項目

<l:CustomControl> 
    <l:CustomControl.ControlItems> 
    <l:CustomItem /> 
    <l:CustomItem /> 
    </l:CustomControl.ControlItems> 
</l:CustomControl> 

ControlItems酒店internal setpublic get存取,並且是FreezableCollection<CustomItem>類型。

事情是,我得到構建錯誤,說這是不可能的,因爲我的ControlItems屬性沒有可訪問set訪問器。

據我所知,WPF支持這種情況(從.NET3.5SP1開始)。我錯了嗎?可能是什麼問題?這適用於Grid.RowDefinitions,我試着添加DesignerSerializationVisibility屬性,但它不起作用。

編輯:我注意到,我收到此錯誤,只有當我有一個internal,privateprotected設置訪問器。當我完全刪除訪問器時,一切都很好。

回答

6

好的,讓我在這裏寫點東西來標記這個答案。如果XAML解析器具有內部,私有或受保護的集合方法,則無法將項目添加到您的控件。解決方案是刪除內部/私有/受保護的集合方法。如果沒有'set'方法存在,一切都很好。這聽起來很愚蠢,但這是事實。

這個問題也打了我的一個隊友,所以我猜人們一定會碰到同樣的問題。

+0

感謝您花時間添加答案。 – Ben 2017-09-10 11:25:15

相關問題