Silverlight Datagrid数据绑定

时间:2009-11-19 17:35:19

标签: silverlight data-binding

我是Silverlight的新手,我在找到解决问题的方法时遇到了一些麻烦。

我有一个包含3列的silverlight数据网格。其中一列绑定为整数。我希望能够将我的列绑定到一个函数,该函数将我的整数转换为它的状态代码。该函数接受一个整数,并使用switch语句返回该数字所代表的字符串。

0 =无效
1 =有效
2 =待定 等

我发现很多东西都是Element Binding的技术,这很酷,但不是我想要的。

2 个答案:

答案 0 :(得分:1)

您可以创建一个IValueConverter,使您能够调用数据绑定值上的函数。
您可以自定义Convert方法,以根据传入的值返回字符串:

  

公共对象转换(对象值,类型targetType,对象参数,CultureInfo文化)       {
          开关((int)的值)
          {
            案例0:返回“无效”;
            案例1:返回“有效”;
            案例2:返回“待定”;
           }
      }

IValueConverter on MSDN
IValueConverter example in Silverlight

答案 1 :(得分:0)

根据您的架构,我会

  1. 像Phani建议的那样实施IValueConverter
  2. 使用Model-View-ViewModel(MVVM)模式。在此模式中,绑定所需的任何内容都将在视图模型中表示为添加属性。
  3. 所以你会得到类似下面的内容

    public class ViewModel:INoftifyPropertyChanged
    {
        private Model _model;
    
        public string StatusCodeName
        {
            get
            {
                string statusCodeName = SomeCodeToGetStatusCodeNameFromStatus(_model.Status);
                return statusCodeName;
            }   
        }
    }   
    

    然后,您可以绑定到此属性

    {Binding StatusCodeName}