2

我与转换器绑定。我想将“#,,.0M”格式字符串作为转换器参数传递。

此 xaml 无效:

<local:SalesPerformanceControl FirstSalesVolume="{Binding Path=TodaySalesVolume, Converter={StaticResource ResourceKey=decimalToFormatedStringConverter}, ConverterParameter=#,,.0M}"/>

错误

找不到类型“”。

如何正确传递这个字符串?

4

3 回答 3

7

在要传递的字符串上使用单引号:

       <local:SalesPerformanceControl FirstSalesVolume="{Binding Path=TodaySalesVolume, Converter={StaticResource ResourceKey=decimalToFormatedStringConverter}, ConverterParameter='#,,.0M'}"/>

或者使用复杂的语法来绑定,如下所示:

    <local:SalesPerformanceControl>
        <local:SalesPerformanceControl.FirstSalesVolume>
            <Binding Path="TodaySalesVolume" Converter="{StaticResource decimalToFormatedStringConverter}" ConverterParameter="#,,.0M" />
        </local:SalesPerformanceControl.FirstSalesVolume>
    </local:SalesPerformanceControl>
于 2013-10-14T06:58:20.083 回答
1

一种方法是在资源中声明您的字符串并将其传递给您的转换器。

<UserControl.Resources>

 <sys:String x:Name="strParam">#,,.0M</sys:String>

    </UserControl.Resources>

添加如下

<local:SalesPerformanceControl FirstSalesVolume="{Binding Path=TodaySalesVolume, Converter={StaticResource ResourceKey=decimalToFormatedStringConverter},   ConverterParameter={StaticResource strParam}}"/>

可以帮助你

于 2013-10-14T06:54:42.430 回答
0

尝试将字符串保存为资源。

首先添加以下xmlns声明

xmlns:sys="clr-namespace:System;assembly=mscorlib"

然后将字符串保存在资源中

<sys:String x:Key="format">#,,.0M</sys:String>

并按如下方式使用

<local:SalesPerformanceControl FirstSalesVolume="{Binding Path=TodaySalesVolume, Converter={StaticResource ResourceKey=decimalToFormatedStringConverter}, ConverterParameter={StaticResource ResourceKey=format}}"/>
于 2013-10-14T06:53:34.373 回答