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

C# WP在C中以编程方式引用TextBlock#,c#,xaml,windows-phone-7,reference,windows-phone-8,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> dummytext.Visibility = Visibility.Collapsed; <phone:PivotItem Header

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

XAML文件

<phone:PivotItem Header="Pivot 1">
   <TextBlock Text="hello world" x:Name="dummytext" />
</phone:PivotItem>
dummytext.Visibility = Visibility.Collapsed;
<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>
但当我有以下代码时,我无法引用它:

XAML文件

<phone:PivotItem Header="Pivot 1">
   <TextBlock Text="hello world" x:Name="dummytext" />
</phone:PivotItem>
dummytext.Visibility = Visibility.Collapsed;
<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开发新手,还在学习。你能告诉我哪里出错了吗?

通过可视化树从LongListSelector中找到你的textblock,而不是使用textblock的属性

请参考下面的链接


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

 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>

或Bing“value converters wp8”了解有关创建转换器的更多信息

实际上,您在LongListSelector中绑定了textblock,因此无法直接使用它…我认为(因为您使用的是longlist selector),您应该指向要隐藏的Longlistselection项的索引。类似LonglistSelector.ItemIdex(类似的东西)。但有一点是肯定的,您现在无法访问它,因为它是Longlist选择器的子项。你不能直接访问它。首先,你必须找到它,然后才能使用textblock属性。我不知道这一点。我会试试你的解决方案巴特。这应该会有帮助:()它给我以下错误<代码>无法解析资源“VisibilityConverter”。
我确信这是我的一个愚蠢错误。谢谢。我现在让它工作了。但奇怪的事情正在发生。它给我一个错误
无效的XAML。
但它运行时没有问题。