我有WPF应用程序与DataGrid包含一些价格。我想动态改变货币和列格式也必须调整。
我发现的唯一方法就是通过这种方式设置格式:
<DataGridTextColumn Header="Price" Width="95" Binding="{Binding Path=Price, StringFormat=C, ConverterCulture='en-US'}" />
字符串
但这种绑定是静态的。当我试图将ConverterCulture绑定到代码中的值时,它会抛出绑定错误。
<DataGridTextColumn Header="Price" Width="95" Binding="{Binding Path=Price, StringFormat=C, ConverterCulture="{Binding Source=CurrencyCulture}" />
型
是否有任何方法可以动态更改Datagrid列格式的ConverterCulture?
3条答案
按热度按时间ct3nt3jp1#
是否有任何方法可以动态更改Datagrid列格式的ConverterCulture?
设置
DataGrid
的Language
属性:字符串
这是可以绑定到的依赖项属性。
pw9qyyiw2#
我没有测试它,所以我不能告诉如果它的工作肯定,但你可以尝试这样的东西与风格和datatrigger。在这个例子中,你需要一个dependecy属性“currency”,你设置为“USD”来触发更改,但是你可以根据需要调整触发器:
字符串
希望这能解决你的问题或引导你在一个方向,这样做的伎俩
bkhjykvo3#
最后我找到了解决办法。不太理想,但似乎有效。CurrentContext是我用来存储变量的静态类。SelectedCurrency.CurrencyCode是3字符货币代码,如USD或EUR。当我在组合框中更改货币时,列中的字符串格式也会随所需的货币符号而更改。
CultureConverter.cs
字符串
Form.xaml
的数据