代码之家  ›  专栏  ›  技术社区  ›  jpierson

根据itemssource是持有单个值还是多个值,为wpf itemscontrol提供不同的外观?

  •  1
  • jpierson  · 技术社区  · 15 年前

    根据itemssource是持有单个值还是多个值,是否有任何巧妙的方式来对WPF itemsControl进行样式/模板设置?

    到目前为止,我所做的是创建一个自定义的itemsControl类,它将绑定项的列表显示为一个水平方向的逗号分隔列表。到目前为止,我对结果非常满意,但是我希望在绑定多个值的情况下显示绑定数据的更简短视图,如果只绑定一个值,那么我希望显示具有更长字符串描述的绑定数据的更扩展视图。我认为最好的解决方法可能是基于触发器动态选择模板,也可能是使用模板选择器,但我还不清楚这是如何做到的。

    2 回复  |  直到 15 年前
        1
  •  2
  •   Steven Robbins    15 年前

    可以使用样式中的DataTrigger替换模板:

    <Style.Triggers>
        <DataTrigger Binding="{Binding RelativeSource={x:Static RelativeSource.Self}, Path=Items.Count}" Value="1">
            <Setter Property="Template">
                <Setter.Value>
                    <!-- Insert Template here -->
                </Setter.Value>
            </Setter>
        </DataTrigger>
    </Style.Triggers>
    

    如果要显示“无记录”模板,还可以为值为0的地方添加一个。

        2
  •  1
  •   Muad'Dib    15 年前

    您应该使用样式选择器。 Here is a sampl E.