1

我正在尝试禁用 TextBlock 的可见性。我可以在以下示例中引用 TextBlock:

XAML 文件

<phone:PivotItem Header="Pivot 1">
   <TextBlock Text="hello world" x:Name="dummytext" />
</phone:PivotItem>

CS文件

dummytext.Visibility = Visibility.Collapsed;

但是当我有以下代码时,我无法引用它:

XAML 文件

<phone:PivotItem Header="{Binding Dummy.Title}">
  <Grid Margin="0,0,-12,0">
    <ListBox x:Name="Box1">
      <phone:LongListSelector ItemsSource="{Binding Dummy.Items}">
        <phone:LongListSelector.ItemTemplate>
          <DataTemplate>
            <StackPanel>

              <Grid>
                //REFERENCE THIS TEXTBLOCK
                <TextBlock Text="hello world" x:Name="dummytext" />
              </Grid>

              <Grid>
                <TextBlock Text="byee world" x:Name="dummytext2" />
                <TextBlock Text="bye2 world" x:Name="dummytext3" />
              </Grid>

            </StackPanel>
          </DataTemplate>
        </phone:LongListSelector.ItemTemplate>
      </phone:LongListSelector>
    </ListBox>
  </Grid>
</phone:PivotItem>

我是 Windows Phone 开发的新手,还在学习。你能指出我哪里出错了吗?

4

2 回答 2

3

如果您尝试设置控件的可见性,则合适的方法是使用可见性“转换器”,将实体中的属性发送到转换器,然后返回所需的可见性状态。

 public class VisibilityConverter : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        bool visible;

        bool.TryParse(value.ToString(), out visible);

        return visible ? Visibility.Visible : Visibility.Collapsed;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

定义您的转换器

您可以将其放在 app.xaml 文件中,以便整个应用程序在需要时可以访问它。

<Application  xmlns:converters="clr-namespace:NamespaceOfYourConverter;assembly=AssemplyOfYourConverter">
   <Application.Resources>
    <ResourceDictionary>
        <converters:VisibilityConverter x:Key="VisibilityConverter" />
    </ResourceDictionary>
   </Application.Resources>
</Application>

设置你的 xaml

<TextBlock Text="hello world" x:Name="dummytext" Visibility="{Binding IsVisible, Converter={StaticResource VisibilityConverter}}" />

有关创建转换器的更多信息,请参阅转换器或 Bing“值转换器 wp8”

于 2013-10-07T09:54:36.580 回答
0

通过可视化树从 LongListSelector 中找到您的文本块,而不是使用文本块的属性

参考下面的链接

如何使用 WP7 中的可视化树在控件中查找特定元素

可视树枚举

使用视觉树查找图像控件

于 2013-10-07T09:48:55.987 回答