Я просто пытаюсь установить, чтобы текстовое поле свернулось в моем GridViewColumnHeader.ContentTemplate.Я считаю, что все делается правильно, но по какой-то причине текстовое поле не будет разрушаться, когда установлено логическое свойство.
Информация
- У меня естьПредставление с моделью представления, имеющей логическое свойство FilterRows.
- Я оформляю свое сеточное представление, чтобы позволить пользователям устанавливать свойство FilterRows и иметь фильтры для каждого заголовка.
- Я пытался использоватьBooleanToVisibilityConverter и BooleanToCollapsedConverter.
- Я проверил, что bool устанавливается в модели представления, когда пользователь устанавливает флажок.
BooleanToCollapsedConverter
Этот конвертер находится в том же виде, что и моя таблица вида сетки.Я знаю, что конвертер работает, потому что я использовал его для других элементов пользовательского интерфейса в том же виде.
<Grid.Resources>
<ResourceDictionary>
<local:BooleanToCollapsedConverter x:Key="BooleanToCollapsedConverter"/>
</ResourceDictionary>
</Grid.Resources>
Это класс для booleanToCollapsedConverter
public class BooleanToCollapsedConverter : BaseValueConverter<BooleanToCollapsedConverter>
{
public override object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
return (bool)value ? Visibility.Visible : Visibility.Collapsed;
}
public override object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
The View
Вот код для части столбца вида сетки, где я пытаюсь использовать конвертер в стиле.Видимость GridViewColumnHeader устанавливается правильно и сворачивается по мере необходимости.Внутренняя часть с шаблоном данных не работает.
<GridViewColumn DisplayMemberBinding = "{Binding Description}"
Width="auto">
<GridViewColumnHeader Content = "Description"
Visibility="{Binding HeaderList[1].IsChecked, Converter={StaticResource BooleanToCollapsedConverter}}"
local:GridViewBehaviors.CollapseableColumn="True">
<GridViewColumnHeader.ContentTemplate>
<DataTemplate>
<StackPanel>
<TextBox Height = "25"
FontSize="{StaticResource FontSizeSmall}"
Visibility="{Binding FilterRows, Converter={StaticResource BooleanToCollapsedConverter}}"/>
<TextBlock Text = "Description" ></ TextBlock >
</ StackPanel >
</ DataTemplate >
</ GridViewColumnHeader.ContentTemplate >
</ GridViewColumnHeader >
</ GridViewColumn >
Модель представления
Это мое логическое свойство в модели представления.
/// <summary>
/// True if the user wants to apply filters to the rows.
/// Once set the UI will display all filters
/// </summary>
public bool FilterRows
{
get => _filterRows;
set => Set(ref _filterRows, value);
}
Финальные очки
В общем, я буквально пытаюсь свернуть это текстовое поле, когда проверяюФильтр строк: флажок.Не уверен, что это как-то связано со стилем или я делаю что-то неправильно?Любая помощь будет принята с благодарностью!
Спасибо