在LongListPicker项中的TextBlock上设置自动可见或折叠
本文关键字:折叠 设置 LongListPicker TextBlock | 更新日期: 2023-09-27 18:26:01
我有带有自定义DataTemplate的LongListPicker。在那个DataTemplate中,我有TextBlock,文本绑定到SubItemNames。我还有一个属性SubItemsVisible,它是布尔的,当HasSubItemNames为false时,我想折叠TextBlock。
我创建了转换器:
public class BoolVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool)value ? Visibility.Visible : Visibility.Collapsed;
}
}
并添加到我的XAML:
<phone:PhoneApplicationPage.Resources>
<DataTemplate x:Key="StateItemTemplate">
<StackPanel VerticalAlignment="Top">
<TextBlock Text="{Binding ItemName}" Foreground="#DE000000" FontFamily="Segoe WP SemiLight" FontSize="24" />
<Path Data="M-65,106 L169.77,106" Fill="#FF0A0AE4" Height="3" Stretch="Fill" Stroke="Black" UseLayoutRounding="False"/>
<TextBlock Text="{Binding SubItemNames}" Visibility="{ Binding SubItemsVisible , Converter={StaticResource BoolVisibilityConverter}}" Foreground="#DE636363" FontFamily="Segoe WP SemiLight" FontSize="16" />
<Path Data="M-65,106 L169.77,106" Fill="#FF0A0AE4" Height="3" Stretch="Fill" Stroke="Black" UseLayoutRounding="False"/>
</StackPanel>
</DataTemplate>
但我仍然缺少一些东西,因为我遇到了错误:资源"BoolVisibilityConverter"无法解析。我应该向XAML页面添加什么?
您需要创建名为BoolVisibilityConverter
的静态资源来引用它
您可以在App.xaml
中创建它,使其全局可见,也可以在您的Page
Resources
部分中创建它
首先,添加xmlns
语句:
xmlns:converters="clr-namespace:ConverterNamespace"
App.xaml声明示例:
<Application.Resources>
<ResourceDictionary>
<converters:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
</ResourceDictionary>
</Application.Resources>
Page.xaml声明示例:
<phone:PhoneApplicationPage.Resources>
<converters:BoolVisibilityConverter x:Key="BoolVisibilityConverter" />
</phone:PhoneApplicationPage.Resources>