启用基于WPF中值列表视图内/禁用按钮

问题描述 投票:-1回答:2

我有使用WPF中一个StackPanel填充的列表视图。我想隐藏pooja_name如果0状态值否则这将是可见的。

<ListView x:Name="bookedlist" HorizontalAlignment="Left" Height="449" Margin="679,238,0,0" VerticalAlignment="Top" BorderBrush="#00828790" Background="Transparent" Focusable="False">
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel x:Name="stackkk" Orientation="Horizontal" >
                <Border BorderThickness="0.5" BorderBrush="#FFB0AEAE">
                    <TextBlock Text="{Binding Pooja_name}" TextAlignment="Left" Margin="5" Width="250"/>
                </Border>
                <Border BorderThickness="0.5" BorderBrush="#FFB0AEAE">
                    <TextBlock Text="{Binding Name}" TextAlignment="Left" Margin="5" Width="250"/>
                </Border>
                <Border BorderThickness="0.5" BorderBrush="#FFB0AEAE">
                    <TextBlock Text="{Binding Status}" TextAlignment="Left" MouseLeftButtonDown="Star_function" Margin="5" Width="95"/>
                </Border>
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

列表视图是填充使用modelclass

public class Booked
{
    public string Pooja_name { get; set; }
    public string Name { get; set; }
    public string Status{ get; set; }
}

和jsonarray

JArray bookedpoojalist = JArray.Parse(bookedval);
            List<Booked> booked = JsonConvert.DeserializeObject<List<Booked>>(bookedpoojalist.ToString());
            bookedlist.ItemsSource = booked;
wpf listview
2个回答
-1
投票

这应该为你工作:申报转换器:

<Window.Resources>
    <StringToVisibility x:Key="StringToVisibilityConverter"/>
</Window.Resources>

      <StackPanel x:Name="stackkk" Orientation="Horizontal">
        <Border BorderThickness="0.5" BorderBrush="#FFB0AEAE" Visibility="{Binding Status, Converter={StaticResource StringToVisibilityConverter}}">
            <TextBlock Text="{Binding Pooja_name}" TextAlignment="Left" Margin="5" Width="250"/>
         </Border>
      </StackPanel>

转换器:

    public class StringToVisibility : IValueConverter
{
    public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
    {
        if (value.ToString()== "0")
        {
            return Visibility.Collapsed;
        }
        return Visibility.Visible;
    }

    public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
    {
        throw new NotImplementedException();
    }
}

1
投票

你可以申请一个StyleDataTriggerBorderTextBlock元素:

<Border BorderThickness="0.5" BorderBrush="#FFB0AEAE">
    <TextBlock Text="{Binding Pooja_name}" TextAlignment="Left" Margin="5" Width="250"/>
    <Border.Style>
        <Style TargetType="Border">
            <Style.Triggers>
                <DataTrigger Binding="{Binding Status}" Value="0">
                    <Setter Property="Visibility" Value="Collapsed" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </Border.Style>
</Border>
© www.soinside.com 2019 - 2024. All rights reserved.