У меня есть ListView
, и в каждой строке есть Button
. Я хочу скрыть кнопки, пока пользователь не выберет какую-либо строку.
Я использовал в моей ViewModel:
private Visibility _deleteButtonVisibility;
public Visibility DeleteButtonVisibility { get { return _deleteButtonVisibility; } set { _deleteButtonVisibility = value; OnPropertyChanged(nameof(DeleteButtonVisibility)); } }
В моем конструкторе
DeleteBtnVisibility = Visibility.Hidden;
XAML-код, который я использовал
<GridViewColumn Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate >
<StackPanel HorizontalAlignment="Center">
<Button Click="DeleteBand_Click" Visibility="{Binding DeleteBtnVisibility }" Content="Delete" Width="88"></Button>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
<GridViewColumn.Header>
<GridViewColumnHeader Tag="Delete" >Delete</GridViewColumnHeader>
</GridViewColumn.Header>
</GridViewColumn>
Прослушиватель событий ViewModel:
private void WarningModel_OnPropertyChanged(object sender, PropertyChangedEventArgs e)
{
if(e.PropertyName == nameof(SelectedWarning))
{
if(SelectedWarning != null)
{
DeleteBtnVisibility = Visibility.Visible;
}
}
}
привязка не работает внутри ListView
.
Если я использую ту же привязку для любых других объектов за пределами ListView
, он скрывает объект.
Я пытался скрыть <StackPanel>
, который содержит Button
, но все еще безуспешно.
Я не уверен, почему Binding не работает