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开发的新手,仍在学习。你能指出我哪里出错了吗?
如果尝试设置控件的可见性,则合适的方法是使用可见性"转换器",将实体中的属性发送到转换器,然后返回所需的可见性状态。
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 中使用可视化树查找控件中的特定元素
可视化树枚举
使用可视化树查找图像控件