WPF ItemsControl - 没有ItemContainer

时间:2013-08-11 20:31:38

标签: wpf containers itemscontrol

我想覆盖ItemsControl,这样它就不会为每个项目创建容器,而是按原样显示它们。

这可能吗?通过新的派生类型还是xaml?

编辑:为了进一步解释,我想在数据模板中绑定Canvas附加属性,而不是在ItemContainerStyle中进行绑定,但为了使其工作,必须没有容器,... Canvas直接看椭圆/矩形。

原因是,我想要绑定的值可能并不总是具有相同的名称,因为在这种情况下,对于A的类型,Left属性为'Left',对于B的类型,Left属性为'X'。 / p>

我知道我可以在ItemContainerStyle中使用优先级绑定来执行此操作,但更愿意在数据模板中设置绑定。

有可能吗?

<ItemsControl ItemsSource="{Binding Items}">
        <ItemsControl.Resources>
            <DataTemplate DataType="{x:Type local:A}">
                <Ellipse Width="25" Height="25" Fill="Red"
                         Canvas.Left="{Binding Left}"/>
            </DataTemplate>

            <DataTemplate DataType="{x:Type local:B}">
                <Rectangle Width="25" Height="25" Fill="Green"
                           Canvas.Left="{Binding X}"/>
            </DataTemplate>
        </ItemsControl.Resources>

        <ItemsControl.ItemsPanel>
            <ItemsPanelTemplate>
                <Canvas />
            </ItemsPanelTemplate>
        </ItemsControl.ItemsPanel>
    </ItemsControl>

0 个答案:

没有答案