WP 以编程方式引用 C# 中的文本块

本文关键字:文本 引用 编程 方式 WP | 更新日期: 2023-09-27 18:34:07

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

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开发的新手,仍在学习。你能指出我哪里出错了吗?

WP 以编程方式引用 C# 中的文本块

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

 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}}" />

有关创建转换器的更多信息,请参阅转换器或必应"值转换器 wp8"

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

参考下面的链接

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

可视化树枚举

使用可视化树查找图像控件