C# WP在C中以编程方式引用TextBlock#
我正在尝试禁用TextBlock的可见性。我可以在以下示例中引用TextBlock: XAML文件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
<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。
但它运行时没有问题。