Listview 当字段中没有数据时,如何在UWP中折叠数据绑定控件
我正在开发一个在ListView中绑定数据的UWP应用程序。我一直在试图找到一种方法,在没有数据时折叠(隐藏)控件。例如,我对我正在做的事情做了一个简单的版本:Listview 当字段中没有数据时,如何在UWP中折叠数据绑定控件,listview,hide,uwp,bind,no-data,Listview,Hide,Uwp,Bind,No Data,我正在开发一个在ListView中绑定数据的UWP应用程序。我一直在试图找到一种方法,在没有数据时折叠(隐藏)控件。例如,我对我正在做的事情做了一个简单的版本: <ListView Name="lvwMaster" ItemsSource="{x:Bind CollectionOfPeople}"> <ListView.ItemTemplate> <DataTemplate x:DataType="data:Person">
<ListView Name="lvwMaster" ItemsSource="{x:Bind CollectionOfPeople}">
<ListView.ItemTemplate>
<DataTemplate x:DataType="data:Person">
<StackPanel Name="pnlOnePerson" Margin="10">
<TextBlock Name="lblFirstName" Text="{x:Bind FirstName}" />
<TextBlock Name="lblMiddleName" Text="{x:Bind MiddleName}" Height="Auto" />
<TextBlock Name="lblLastName" Text="{x:Bind LastName}" />
<TextBlock Name="lblBirthDate" Text="{x:Bind BirthDate}" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
因为不是每个人都有中间名,所以我希望中间名字段在为空时隐藏
如果此人没有中间名,有没有关于如何隐藏中间名字段的建议?使用值转换器
class TextToVisibilityConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
string name = System.Convert.ToString(value);
if (string.IsNullOrEmpty(name))
{
return Visibility.Collapsed;
}
return Visibility.Visible; }
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
throw new NotImplementedException();
}
}
将转换器定义为页面内的静态资源
<Page.Resources>
<local:TextToVisibilityConverter x:Name="ConverterNameHere"/>
</Page.Resources>
在您的数据模板中,像这样使用它
<DataTemplate x:DataType="data:Person">
<StackPanel Name="pnlOnePerson" Margin="10">
<TextBlock Name="lblFirstName" Text="{x:Bind FirstName}" />
<TextBlock Name="lblMiddleName" Text="{x:Bind MiddleName}" Height="Auto" Visibility ="{Binding path=Text, ElementName="lblMiddleName" Converter={StaticResource ConverterNameHere}}" />
<TextBlock Name="lblLastName" Text="{x:Bind LastName}" />
<TextBlock Name="lblBirthDate" Text="{x:Bind BirthDate}" />
</StackPanel>
</DataTemplate>
您应该使用。您忘记了在页面资源中添加转换器:
谢谢Nuwannnz。你的解决方案奏效了。我确实必须更改中间名中绑定的格式,以便使其有效。代码>
如果您觉得此选项有用,请将其标记为答案:)