C# 在XAML中应用值转换器而不进行数据绑定
我的视图中有一个文本块,我希望始终显示数字1,转换为当地货币。(例如,美国1美元,英国1英镑等)。我有一个值转换器可以做到这一点,但我不知道如何在不从数据绑定获取数据的情况下将值转换器应用于1的值C# 在XAML中应用值转换器而不进行数据绑定,c#,wpf,xaml,data-binding,valueconverter,C#,Wpf,Xaml,Data Binding,Valueconverter,我的视图中有一个文本块,我希望始终显示数字1,转换为当地货币。(例如,美国1美元,英国1英镑等)。我有一个值转换器可以做到这一点,但我不知道如何在不从数据绑定获取数据的情况下将值转换器应用于1的值 <Border> <Border.Background> <Binding Source="{x:Static enumeration:ColorType.Main}" Converter="{StaticResource
<Border>
<Border.Background>
<Binding Source="{x:Static enumeration:ColorType.Main}"
Converter="{StaticResource ColorConverter}" />
</Border.Background>
</Border>
我可以想出两种解决方案,但它们都有各自的问题,我正在寻找更优雅的解决方案:
是否有一些方法可以在不首先创建绑定的情况下应用转换器?如果您希望仅从XAML中相对可读,您可以这样做:
<Label>
<Label.Resources>
<system:Int32 x:Key="defaultValue">1</system:Int32>
</Label.Resources>
<Label.Content>
<Binding Source="{StaticResource defaultValue}"
Converter="{StaticResource CurrencyConverter}" />
</Label.Content>
</Label>
1.
如果您希望仅从XAML中相对可读,您可以这样做:
<Label>
<Label.Resources>
<system:Int32 x:Key="defaultValue">1</system:Int32>
</Label.Resources>
<Label.Content>
<Binding Source="{StaticResource defaultValue}"
Converter="{StaticResource CurrencyConverter}" />
</Label.Content>
</Label>
1.
我也遇到过类似的情况,我需要将直接放在xaml中的静态枚举值转换为自定义转换器转换的值,而无需使用数据绑定
<Border>
<Border.Background>
<Binding Source="{x:Static enumeration:ColorType.Main}"
Converter="{StaticResource ColorConverter}" />
</Border.Background>
</Border>
我也遇到过类似的情况,我需要将直接放在xaml中的静态枚举值转换为自定义转换器转换的值,而无需使用数据绑定
<Border>
<Border.Background>
<Binding Source="{x:Static enumeration:ColorType.Main}"
Converter="{StaticResource ColorConverter}" />
</Border.Background>
</Border>
此外,无需使用转换器。只要写下StringFormat=“c”
@amnezjak True就行了。无论如何,我自己都应该想到这一点。这应该是一个独立的答案。@NickUdell不,它不是,使用StringFormat
您仍然需要提供标签的内容,它不会神奇地出现。我仍然同意amnezjak的解决方案更好,但它既不能治愈癌症,也不能修剪你的花园:PAlso,没有必要使用转换器。只要写下StringFormat=“c”
@amnezjak True就行了。无论如何,我自己都应该想到这一点。这应该是一个独立的答案。@NickUdell不,它不是,使用StringFormat
您仍然需要提供标签的内容,它不会神奇地出现。我仍然同意amnezjak的解决方案更好,但它既不能治愈癌症,也不能修剪你的花园:PWould{Binding Source=1,Converter={whatever}
有效吗?我现在自己也不能太轻易地试一下。它确实管用!我只是在语法上犯了一个小错误。这可能是最简洁的答案,尽管我仍然更喜欢decPL,因为它可以减少一个神奇的数字?我现在自己也不能太轻易地试一下。它确实管用!我只是在语法上犯了一个小错误。这可能是最简洁的答案,尽管我仍然更喜欢decPL,因为它减少了一个神奇的数字。