我正在创建一个具有工具箱支持的自定义 WPF 控件。在将我的控件从工具箱拖放到 WPF 设计器时,需要在 XAML 级别创建集合对象,如下面的代码
< customcontrol>
<customcontrol.Property1>//observable collection object
<item value=""/>
<item value=""/>
<item value=""/>
</customcontrol.Property1>
< /customcontrol>
您能否就如何做到这一点提出任何想法?
注意:使用 Visual Studio 设计代码,这是我的代码
using Microsoft.VisualStudio.DesignTools.Extensibility.Metadata;
using Microsoft.VisualStudio.DesignTools.Extensibility.Model;
class CustomControlInitializer : DefaultInitializer
{
public override void InitializeDefaults(ModelItem item)
{
TypeIdentifier itemsIdentifier = new TypeIdentifier("ObservableCollection<Item>");
ModelItem items = ModelFactory.CreateItem(item.Context, itemsIdentifier);
TypeIdentifier nodeIdentifier = new TypeIdentifier("Item");
ModelItem item1= ModelFactory.CreateItem(item.Context, nodeIdentifier);
item1.Properties["Value"].SetValue("");
ModelItem item2= ModelFactory.CreateItem(item.Context, nodeIdentifier);
item2.Properties["Value"].SetValue("");
ModelItem item2= ModelFactory.CreateItem(item.Context, nodeIdentifier);
item2.Properties["Value"].SetValue("");
items.Content.Collection.Add(item1);
items.Content.Collection.Add(item2);
items.Content.Collection.Add(item3);
item.Properties["Property1"].Collection.Add(items);
}
}