【问题标题】:How to set a visibility of TextBlock bound to a ListBox?如何设置绑定到 ListBox 的 TextBlock 的可见性?
【发布时间】:2012-04-07 10:45:42
【问题描述】:

如何在 ListBox 中设置 TextBlock 可见性。例如

<Grid>
   <ListBox Name="myList">
     <ListBox.ItemTemplate>
          <DataTemplate>
             <TextBloxk Name="txtBlock1" Text="{Binding} First Name">
             <TextBloxk Name="txtBlock2" Text="{Binding} Last Name">
          </DataTemplate>
     </ListBox.ItemTemplate>
   </ListBox>
</Grid>

在运行时,我想将任一文本块的可见性设置为可见或折叠。

我该怎么做,或者我可以吗?

【问题讨论】:

  • 在运行时我想做txtBlock1.visibility = Visibility.Collapsed

标签: windows-phone-7 textblock listboxitem


【解决方案1】:

您可以使用BooleanToVisibilityConverter(或其他自定义转换器)根据绑定值更改可见性。

【讨论】:

  • 只是根据绑定值吗?例如,我想根据应用程序设置(IsolatedStorageSettings)ShowFirstName = settings["ShowFN"]...if (ShowFirstName != true)...txtBlock1.visible = False 之类的东西来设置 TextBlock 的可见性
  • 如果您想在 XAML 中使用转换器执行此操作,它必须是一个绑定值(但在当前 ListBoxItem 中不是必需的 - 检查 Binding ElementName)。
  • 我认为该资源不再可用。 (schemas.microsoft.com/netfx/2007/xaml/presentation) 出现错误。
  • 我使用了这种方法,它很有效……但是对于像我这样的傻瓜(WP7 和 C# 的新手),这两个链接非常有用。 1.caliburnmicro.codeplex.com/SourceControl/changeset/view/…(完整课程,复制粘贴即可:)。 2.timheuer.com/blog/archive/2008/07/30/…(XAML 中的应用)。谢谢,MarcinJuraszek!
【解决方案2】:

如果您需要遍历 ListBox 中的每个项目,请使用 VisualTreeHelper。或者,将 ListBox 重新绑定到新的数据集并使用 MarcinJuraszek 关于使用 Converter 的建议(绝对是更简单的选择:))

【讨论】:

  • 谢谢尤金,我用了他的方法:)
猜你喜欢
  • 2015-09-25
  • 1970-01-01
  • 2013-06-21
  • 1970-01-01
  • 1970-01-01
  • 2021-11-15
  • 1970-01-01
  • 2020-10-01
  • 1970-01-01
相关资源
最近更新 更多