mvvm - DataGrid 上的动态转换器参数

标签 mvvm silverlight-5.0

我有一个 DataGrid,其中一些列显示 double 值。我使用转换器来格式化这些值,因为它需要一些计算。
格式如下:
如果值为 1,200,则显示 1,2K
如果值为 1,200,000,则显示 1,2M
如果值为 1,200,000,000,则显示 1,2B

有一个带有启用/禁用格式选项的复选框,因此我需要将复选框的状态作为参数传递给转换器。

我试图绑定(bind) ConverterParameter,但在 Silverlight 5 中是不可能的。

我怎样才能做到这一点?

我正在使用 Silverlight 5 和 MVVM(没有任何框架,如 Prism 或 MVVMLight)。

最佳答案

我会这样做:

  • 有简单的可见性转换器来控制可见性,即 visibleifFormatIsRegular , visibleifFormatIsNotRegular
  • 两个值转换器,用于将值转换为您需要显示的每种格式的值
  • 具有下面提到的格式的两个文本 block 仅转换器名称更改

    textblock 1 ==> Text={Binding propertyvalue, Converter{staticresource YourIvalueConverterforactualFormatConversion}} Visibility={Binding checkboxtoggledProperty, converter {visibilityConverter }}

  • 希望这可以帮助!

    关于mvvm - DataGrid 上的动态转换器参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10352002/

    相关文章:

    silverlight-5.0 - 银光 : disable copy/paste/cut operations on textbox

    c# - MVVM WPF 主从组合框

    wpf - 如何发送验证消息表单模型以在 MVVM 模式中查看?

    c# - DataContractJsonSerializer 和 JsonConvert 给出不同的结果

    c# - 如何在 ViewModel 上使用数据注释?

    silverlight - 在 Silverlight 5 上使用 GPU 进行通用数学计算

    c# - 使用 MVVM 模式时如何实现工具栏?

    c# - 如何将命令中的文本框文本作为参数传递 WPF

    c# - MVVM 模式,我不明白我应该如何编写 "Detail"ViewModel

    c# - 输入为空时格式化时间格式的字符串