gpt4 book ai didi

c# - 在纯 XAML 中,是否可以即时选择字符串格式?

转载 作者:太空宇宙 更新时间:2023-11-03 10:29:25 25 4
gpt4 key购买 nike

我必须显示代表价格的小数。

如果价格是英镑或日元,需要显示到小数点后 4 位,否则需要显示到小数点后 6 位。

货币编码为字符串,将是 GBpYEN 或其他(例如 EUR)。货币字符串和价格都在 ViewModel 中。我正在使用 MVVM。

我想知道是否可以只使用纯 XAML 选择正确的字符串格式?

最佳答案

使用几个 DataTriggers 很容易:

<Grid x:Name="LayoutRoot">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>

<ListBox Grid.Row="0"
ItemsSource="{Binding Currencies}"
SelectedItem="{Binding SelectedCurrency,
Mode=TwoWay,
UpdateSourceTrigger=PropertyChanged}"
DisplayMemberPath="Name" />

<TextBlock FontSize="30" Grid.Row="1">
<TextBlock.Style>
<Style TargetType="TextBlock">
<Setter Property="Text" Value="{Binding Price, UpdateSourceTrigger=PropertyChanged, StringFormat=C6}" />
<Style.Triggers>
<DataTrigger Binding="{Binding Path=SelectedCurrency.Name}" Value="GBP">
<Setter Property="Text" Value="{Binding Price, UpdateSourceTrigger=PropertyChanged, StringFormat=C4}" />
</DataTrigger>
<DataTrigger Binding="{Binding Path=SelectedCurrency.Name}" Value="YEN">
<Setter Property="Text" Value="{Binding Price, UpdateSourceTrigger=PropertyChanged, StringFormat=C4}" />
</DataTrigger>
</Style.Triggers>
</Style>
</TextBlock.Style>
</TextBlock>
</Grid>

对于上面的示例,我创建了一个名为 Currency 的类它有一个 string属性(property)Name .虚拟机有一个 ObservableCollection<Currency>称为 Currencies , Currency 的实例称为 SelectedCurrency , 和一个 decimal属性名为 Price .

关于c# - 在纯 XAML 中,是否可以即时选择字符串格式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30743613/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com