#c# #wpf #listview #datatrigger
#c# #wpf #просмотр списка #datatrigger
Вопрос:
Как мне привязать видимость кнопки внутри listview без использования converter, но с использованием свойства триггера данных. Но мне не удается понять, как кодировать. Нам все еще нужно использовать логическое свойство для хранения значения true / false? Если да, то как это реализовать? Извините, что я новичок в WPF и до сих пор не могу плохо понять этот сложный код.
private void Btnfolder_Click(отправитель объекта, RoutedEventArgs e) {
try
{
// the excel file open from here to display gridview with button true and false for certain rows but i do not know how to set the visibility here
}
catch (Exception ex){
MessageBox.Show(ex.ToString());
}
}
public bool _isVisible = false;
public bool IsVisible
{
get { return _isVisible; }
set
{
_isVisible = value;
OnPropertyChanged("IsVisible"); --> error- cannot convert from string to System.Windows.DependencyPropertyChangedEventArgs
}
}
<GridViewColumn Header="View CriticalPart" Width="100">
<GridViewColumn.CellTemplate>
<DataTemplate>
<Button x:Name="btnCritical" Content="Edit" Click="Button_Click" Width="80" Height="30" Margin="5" >
<Button.Style>
<Style TargetType="Button">
<Setter Property="Visibility" Value="Collapsed"/>
<Style.Triggers>
<DataTrigger Binding="{Binding IsVisible}" Value="True">
<Setter Property="Visibility" Value="Visible"/>
</DataTrigger>
</Style.Triggers>
</Style>
</Button.Style>
</Button>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
Комментарии:
1. «Основная причина» вашей проблемы заключается в том, что вы получаете прямой доступ к кнопке. Привяжите его видимость к свойству класса элемента данных или задайте его с помощью DataTrigger.
2. @Clemens класс элемента данных вы имеете в виду класс модели представления? Я изучил это, но я понятия не имею, как это применить, потому что приложение уже разработано без класса view model .. не могли бы вы привести мне пример для тех, кого вы объяснили? Спасибо.
3. Вы имеете в виду пример привязки видимости к логическому свойству? Интернет полон этого.
4. Привет @Clemens 2 месяца спустя я все еще не могу решить эту проблему, серьезно, можете ли вы показать мне пример, я изо всех сил пытался много изучить о логическом преобразователе, но до сих пор не могу понять, что так плохо, очень расстроен:(
5. @Clemens Я хочу использовать этот способ, но не могу узнать, как правильно его использовать в коде, можете ли вы посоветовать? <Style TargetType=»Button»> <Setter Property=»Visibility» Value=»Collapsed» /> Триггеры> <Привязка DataTrigger=»{Привязка видна}» Значение = «True»> <Свойство Setter=»Видимость» Значение = «Видимый»/> </DataTrigger> Триггеры> </Style>