/ / Skryť tlačidlo v položke ListBox pomocou DataTrigger v WPF ListBox na základe počtu - wpf, xaml, listbox, datatemplate, datatrigger

Skryť tlačidlo v položke ListBox pomocou DataTrigger v WPF ListBox Na základe počtu - wpf, xaml, listbox, datatemplate, datatrigger

Ja som m ListBox, v tom ItemTemplate Jeden mám TextBlock a jeden Odstrániť Button.

Moja požiadavka: Ak je ObservableCollection<string> Person má iba jeden záznam, potom musím skryť Odstrániť Button, Ak existuje viac ako jeden záznam, musím ukázať príkaz Odstrániť Button pre všetky položky.

XAML:

<ListBox ItemsSource="{Binding Person, UpdateSourceTrigger=PropertyChanged}" Background="Transparent"  Margin="0 10" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid HorizontalAlignment="Stretch">
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="Auto"/>
</Grid.RowDefinitions>
<TextBox Grid.Row="0" Text="{Binding Contact, UpdateSourceTrigger=PropertyChanged}" />
<Button  Grid.Row="1" Content="X" Foreground="Red" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Items.Count, RelativeSource={RelativeSource Self}}"  Value="1">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>
</ListBox>

DataTrigger:

    <ListBox.Style>
<Style TargetType="{x:Type ListBox}">
<Style.Triggers>
<DataTrigger Binding="{Binding Path=Items.Count, RelativeSource={RelativeSource Self}}"  Value="1">
<Setter Property="Visibility" Value="Collapsed" />
</DataTrigger>
</Style.Triggers>
</Style>
</ListBox.Style>

Láskavo mi pomôže, ako nastaviť DataTrigger pre moju požiadavku.

odpovede:

0 pre odpoveď č. 1

DataTrigger môže byť v štýle tlačidla:

<Button ...>
<Button.Style>
<Style TargetType="Button">
<Style.Triggers>
<DataTrigger Binding="{Binding Items.Count,
RelativeSource={RelativeSource AncestorType=ListBox}}"
Value="1">
<Setter Property="Visibility" Value="Collapsed"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>