Как привязать visibility для кнопки SelectedItem в ListBox?
У каждого элемента ListBox есть текст и кнопка удаления, мне нужно сделать, чтобы кнопка удаления была доступна только в случае, если выбран соответствующий элемент.
<ListBox Grid.Row="1" ItemsSource="{Binding CartProducts }"
SelectedItem="{Binding SelectedCart}"
x:Name="listboxcarts">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal" >
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="230"/>
<ColumnDefinition Width="1100"/>
</Grid.ColumnDefinitions>
<Image Source="{Binding Product.Image}" Grid.Column="0"/>
<StackPanel Grid.Column="1" Orientation="Horizontal">
<TextBlock Text="{Binding Product.Name}" FontSize="16" FontWeight="Medium"
Foreground="White" Margin="70,0,0,0" VerticalAlignment="Center"/>
<TextBlock Text="{Binding Size, StringFormat=Size: {0}}" FontSize="16" FontWeight="Medium"
Foreground="White" Margin="70,0,0,0" VerticalAlignment="Center"/>
<TextBlock Text="{Binding Amount, StringFormat=Amount: {0}}" FontSize="16" FontWeight="Medium"
Foreground="White" Margin="70,0,0,0" VerticalAlignment="Center"/>
<Button Background="#B0E0E6" Content="Remove" Margin="50,0,0,0"
Command="{Binding DataContext.DeleteFromCart, ElementName=listboxcarts}"
CommandParameter="{Binding SelectedItem, ElementName=listboxcarts}"
Visibility="{Binding DataContext.Btn_Update_Visibility, ElementName=listboxcarts}"/>
</StackPanel>
</Grid>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
private Cart selectedCart;
public Cart SelectedCart
{
get { return selectedCart; }
set
{
selectedCart = value;
OnPropertyChanged(nameof(SelectedCart));
btn_update_visiblity = "Visible";
OnPropertyChanged(nameof(Btn_Update_Visibility));
}
}
private string btn_update_visiblity = "Hidden";
public string Btn_Update_Visibility
{
get { return btn_update_visiblity; }
set
{
btn_update_visiblity = value;
OnPropertyChanged("Btn_Update_Visibility");
}
}
Пока получается вот так, но проблема в том, что при выборе элемента ListBox доступными становятся кнопки всех элементов.