Search code examples
c#wpfxamlheaderexpander

Expander Header removing "_" character


I'm binding the Expander.Header property in XAML to a backing public property of string type in my ViewModel using the MVVM pattern:

public string EnumName {...}

I'm setting this property to "X_Y_Z" but for some strange reason the Expander Header is removing the first underscore character and it is displayed as XY_Z. I tried adding a "\" before or setting it to @"X_Y_Z" but no luck.

Here my XAML binding portion:

<Expander IsExpanded="true" Header="{Binding EnumName}">

Anybody know why I'm getting this behavior? Is it taking the first "_" as a keyboard shortcut or a meta-character?

Thanks,


Solution

  • @H.B. pointed me to the right direction. I ended up setting a Header Template for my Expander as follows, accessing the DataContext of the ancestor ListViewItem:

    <Expander.HeaderTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Path=DataContext.EnumName,RelativeSource={RelativeSource AncestorType=ListViewItem}}"/>
        </DataTemplate>
    </Expander.HeaderTemplate>
    

    Since I'm now using a TextBlock it does not remove any of the "_" characters in my string.