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