Проблема видимости GroupStyle Xaml на Windows Phone 8.1

Мне просто нужна пара дополнительных глаз, чтобы увидеть, что я здесь делаю неправильно.

У меня есть страница xaml с групповым стилем внутри списка. вот как это выглядит,

                <GroupStyle
                            HeaderContainerStyle="{StaticResource JumpListListHeaderContainerStyle}"
                            HidesIfEmpty="True">
                    <GroupStyle.HeaderTemplate>
                        <DataTemplate>
                            <Border 
                                    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"
                                    BorderThickness="0,0,0,1"
                                    BorderBrush="{StaticResource RedBrush}"
                                    Margin="0,0,0,9.5">
                                    <TextBlock Text="{Binding Key}"
                                        Foreground="{StaticResource RedBrush}"
                                        FontSize="23" 
                                        Visibility="{Binding IsGroupheaderVisible, Converter={StaticResource BooleanToVisibilityConverter}}" 
                                        FontFamily="Segoe WP Semibold"
                                        OpticalMarginAlignment="TrimSideBearings"
                                        VerticalAlignment="Bottom" />
                            </Border>
                        </DataTemplate>
                    </GroupStyle.HeaderTemplate>
                </GroupStyle>

Что мне нужно сделать, это скрыть заголовок groupstule на основе условия в viewmodel. Вот собственность.

    private bool _isGroupHeaderVisibile;
    public bool IsGroupheaderVisible
    {
        get { return _isGroupHeaderVisibile; }
        set
        {
            if (value == _isGroupHeaderVisibile) return;
            _isGroupHeaderVisibile = value;
            NotifyOfPropertyChange(() => IsGroupheaderVisible);
        }
    }

и на событии OnInitialize я устанавливаю его в true или false в зависимости от некоторых условий. Но, к сожалению, это не скрывает / показывает, но всегда обнаруживается.

Вот BooleanToVisibilityConverter, который я использую,

public class BooleanToVisibilityConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, string language)
        {
            bool flag;
            return value != null && bool.TryParse(value.ToString(), out flag) && flag
                ? Visibility.Visible
                : Visibility.Collapsed;
        }

        public object ConvertBack(object value, Type targetType, object parameter, string language)
        {
            return value is Visibility && (Visibility)value == Visibility.Visible;
        }
    }

ПРИМЕЧАНИЕ: я использую CaliburnMicro, поэтому у меня есть методы, такие как OnInitialize(), которые я опускаю.

0 ответов

Другие вопросы по тегам