none
Expander style modificado con conversor dentro de GroupStyle [C#-WPF] RRS feed

  • Pregunta

  • Hola !!

    Llevo unos dias liado con un problema del que no consigo salir, os comento:

    Tengo un ListView al que agregue un GroupStyle de la siguiente forma:

     <ListView.GroupStyle>
                    <GroupStyle>
                        <GroupStyle.ContainerStyle>
                            <Style TargetType="{x:Type GroupItem}">
                                <Setter Property="Template">
                                    <Setter.Value>
                                        <ControlTemplate>
                                            <Expander x:Name="jojo" IsExpanded="False" Style="{Binding Path=estado,
                    Converter={StaticResource InverseConditionalSetterConverter},
                    ConverterParameter={StaticResource ar}
                    }">
                                                <Expander.Header>
                                                    <StackPanel Orientation="Horizontal">
                                                        <TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="Gray" FontSize="12" VerticalAlignment="Bottom" />
    
                                                    </StackPanel>
                                                </Expander.Header>
                                                <ItemsPresenter />
                                            </Expander>
                                        </ControlTemplate>
                                    </Setter.Value>
                                </Setter>
                            </Style>
                        </GroupStyle.ContainerStyle>
                    </GroupStyle>
                </ListView.GroupStyle>

    El problema principal es que cuando se carga el ListView la propiedad Style no carga el conversor y no se porque ya que he probado con un expander fuera del groupstyle y lo hace sin ningun problema.

    Espero que me podais ayudar :D

    P.D.: "ar" es un array de Style definido dentro de WindowResources y InverseConditionalSetter tiene la siguiente forma:

    public class ConditionalSetterConverter : IValueConverter
        {
            public int Inverse { get; set; }
    
            public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                Style[] s = parameter as Style[];
                switch ((int)value)
                {
                    case 1:
                        return s[0];
                    case 2:
                        return s[1];
                    default:
                        return null;
                }
    
            }
    
            public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
            {
                throw new NotImplementedException();
            }
        }

    • Editado Jk_rod viernes, 17 de marzo de 2017 9:21
    viernes, 17 de marzo de 2017 9:18

Todas las respuestas