【问题标题】:Hide content in listbox item depending on a binding property in Silverlight根据 Silverlight 中的绑定属性隐藏列表框项中的内容
【发布时间】:2010-10-15 08:10:40
【问题描述】:

我有一个看起来像这样的 xaml

<ListBox>
<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel>
            <TextBlock Text="{Binding Name}" />
            <StackPanel Orientation="Vertical" x:Name="contentPanel" >
            Content goes here...
            </StackPanel>
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

列表框绑定到一个具有名为 ShowContent 的 bool 属性的对象。 如果 ShowContent 的对象为 false,如何让 silverlight 隐藏 contentPanel?

【问题讨论】:

    标签: silverlight listbox visibility


    【解决方案1】:

    编写一个 BoolToVisibility IValueConveter 并使用它来绑定到您的 contentPanel 的 Visibility 属性

    <StackPanel Visibility="{Binding YourBoolProperty, Converter={StaticResource boolToVisibilityResourceRef ..../>
    

    您可以在任何地方轻松找到 BoolToVisibility。

    如果您是新手,请检查 IValueConveter。 http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter.aspx

    【讨论】:

    • 有一个 BooleanToVisibilityConverter 是框架的一部分。
    • 我已经尝试过了,但它不起作用。它可能在 wpf 中有效,但在 Silverlight 中无效。
    • :) 它应该在 Silverlight 中工作 - 这是一个快速搜索结果 jeff.wilcox.name/2008/07/visibility-type-converter
    【解决方案2】:

    我建议在 ListBoxItem 级别设置 ListBoxItem 可见性,否则由于默认的填充和边框值,您最终会得到很小的空列表框项目,例如

    <ListBox>
         <ListBox.Resources>
              <Style TargetType="ListBoxItem">
                   <Setter Property="Visibility" Value="{Binding MyItem.IsVisible, Converter={StaticResource BooleanToVisibilityConverter}}" />
              </Style>
         </ListBox.Resources>
         <ListBox.ItemTemplate>
              <DataTemplate>
                   <StackPanel Orientation="Vertical">
                        <CheckBox Content="{Binding MyItemName}" IsChecked="{Binding IsVisible, Mode=TwoWay}"/>
                   </StackPanel>
              </DataTemplate>
         </ListBox.ItemTemplate>
    </ListBox>
    

    这不仅隐藏了整个 ListBoxItem 的内容。

    【讨论】:

      猜你喜欢
      • 2017-01-02
      • 1970-01-01
      • 1970-01-01
      • 2011-05-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多