2009-11-19 72 views
1

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

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

0 =无效
1 =活动
2 =待定

的很多事我发现已经有元素绑定,这是非常酷的技术,但不是我什么寻找。

回答

1

您可以创建一个IValueConverter,使您可以调用databound值上的函数。
您可以自定义转换方法返回基于传入的值的字符串:

公共对象转换(对象的值,类型目标类型,目标参数,CultureInfo的文化) {
开关((INT)值)
{
case 0:return“Inactive”;
情况1:返回“活动”;
案例2:返回“待定”;
}
}

IValueConverter on MSDN
IValueConverter example in Silverlight

0

根据您的架构像Phani表明

  • 使用模型 - 视图 - 视图模型我要么

    1. 实现一个的IValueConverter( MVVM)模式。在此模式中,绑定所需的任何内容都将在您的视图模型中表示为添加属性。

    所以你会像下面

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

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

    {Binding StatusCodeName}