我已經創建稱爲MovableItemsControl自定義控制,自ItemsControl繼承數據,以便覆蓋GetContainerForItemOverride()方法。我的問題是綁定集合中沒有任何對象正在顯示。目前,我綁定了一個OberservableCollection字符串,當我查看調試器時,我可以看到它們在ItemsSource中。WPF自定義控制自ItemsControl衍生未能顯示結合
定製控制如下:
public class MovableItemsControl : ItemsControl
{
static MovableItemsControl()
{
DefaultStyleKeyProperty.OverrideMetadata(typeof(MovableItemsControl), new FrameworkPropertyMetadata(typeof(MovableItemsControl)));
}
/// <summary>
/// Wraps each content object added to the ItemsControl in a NodeWrapper
/// </summary>
protected override DependencyObject GetContainerForItemOverride()
{
NodeWrapper nodeWrapper = new NodeWrapper();
return nodeWrapper;
}
protected override bool IsItemItsOwnContainerOverride(object item)
{
return item is NodeWrapper;
}
}
NodeWrapper是由從Thumb(MoveThumb)衍生的一個自定義的控制和一個標籤(標籤僅僅是用於測試)的一個用戶控件。
<Style TargetType="{x:Type local:MovableItemsControl}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:MovableItemsControl}">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
我已經創建了一個默認的樣式。我已經編輯它到我的問題: – Vish
這節省了我,非常感謝! – Gope