XAMLMarkupExtensions/WPFLocalizeExtension

Searching for a way to implement Multibinding with localized enum value

JorisCleVR opened this issue · 1 comments

Because lex:LocProxy is deprecated I try to refactor my code.
I tried the following:
<TextBlock Style="{StaticResource DSTextBlock}" Grid.Row="3" Grid.Column="1"> <TextBlock.Text> <MultiBinding StringFormat="{lex:Loc LocalizationView_FormatText1}"> <Binding Path="Number1" /> <Binding Path="String1" /> <lex:BLoc Path="Enum1Value" Converter="{lex:PrependTypeConverter}" /> </MultiBinding> </TextBlock.Text> </TextBlock>

The value of LocalizationView_FormatText1 is: "This is a formated text with a number: {0}, a string: {1} and an enum: {2}."

Unfortunatly I get the following Exception: "Path not allowed for BLoc".

Am I missing something on how I could implement this?

I've just came accross a very similar issue today. Checking out the source code it looks like setting the Path property just causes an exception to be thrown. I was able to get around this by using the Key property instead.

So my exmple looks like <lex:BLoc Key="Assembly:Resource:Key" />

/// <inheritdoc/>
[EditorBrowsable(EditorBrowsableState.Never)]
public new PropertyPath Path
{
get { return null; }
set
{
throw new Exception(nameof(Path) + " not allowed for BLoc");
}
}

Hope this helps,

Kind regards,

Andy