0
我们正在试图制作一个自定义控件,其中包含绑定到列表中的每个项目的文本框的一个包装部分。创建自定义Silverlight控件
像这样:
<ItemsControl x:Name="asdf">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<controls:WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
但是,我们把它变成一个自定义的控制时,它不设置ItemsPanel到WrapPanel,也没有做任何的ItemTemplate:
<ItemsControl x:Class="SilverlightApplication1.PillTagBox"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controls= "clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Toolkit">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<controls:WrapPanel />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<TextBox Text="{Binding}" />
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
这只是表明项目的绑定列表一样,没有造型可言:
<ItemsControl x:Name="asdf" />
我们如何做第一大块XAML进入自定义控件?
谢谢!
那么,这是一个简单的例子,因为演示的原因。我想重写OnItemsSourceChanged,并在我的项目中可以使用的一个类中包含各种点击事件。 –
我以为是这样。按照列出的步骤,如果您需要特殊项目,请不要忘记重写'IsItemItsOwnContainerOverride'和'GetContainerForItemOverride'方法 - 每次都会收到我 – XAMeLi