WP以编程方式引用C#中的TextBlock

时间:2013-10-07 09:34:06

标签: c# xaml windows-phone-7 reference windows-phone-8

我正在尝试禁用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开发的新手,还在学习。你能指出我出错的地方吗?

2 个答案:

答案 0 :(得分: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}}" />

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

答案 1 :(得分:0)

通过使用textblock属性

的可视树从LongListSelector中删除文本块

参考链接

How to find a specific element inside a control using Visual tree in WP7

Visual Tree Enumeration

Find image control using visual tree