Silverlight将映像绑定到datagrid中的Id

Silverlight将映像绑定到datagrid中的Id,silverlight,data-binding,gridview,Silverlight,Data Binding,Gridview,我正在尝试将一个图像绑定到网格中的一个Id,在这个网格中我显示了我的所有用户。有人知道怎么做吗? 我有一个表用户,其中有一个名为StatusId的字段 有两种状态 状态1:Id:10 |激活 状态2:Id:90 |非活动 当状态为10时,我想显示绿色十字,当状态为90时,我想显示红色十字 我正在使用Mvvm模式 这是我的网格代码 <telerik:RadGridView Name="RadGridView1" ItemsSource="{Binding CovrUsers,Mode=Two

我正在尝试将一个图像绑定到网格中的一个Id,在这个网格中我显示了我的所有用户。有人知道怎么做吗? 我有一个表用户,其中有一个名为StatusId的字段

有两种状态

状态1:Id:10 |激活 状态2:Id:90 |非活动

当状态为10时,我想显示绿色十字,当状态为90时,我想显示红色十字

我正在使用Mvvm模式

这是我的网格代码

<telerik:RadGridView Name="RadGridView1" ItemsSource="{Binding CovrUsers,Mode=TwoWay}" IsReadOnly="True" DataContext="{Binding Source={StaticResource CovrUsersViewModel}}" AutoGenerateColumns="False" Margin="230 0 0 0 " Height="Auto">
            <telerik:RadGridView.Columns>
                <telerik:GridViewDataColumn Header="First name" DataMemberBinding="{Binding FirstName}" />
                <telerik:GridViewDataColumn Header="Last name" DataMemberBinding="{Binding LastName}" />
                <telerik:GridViewDataColumn Header="User name" DataMemberBinding="{Binding UserName}" />
                <telerik:GridViewDataColumn Header="Hourly rate" DataMemberBinding="{Binding HourlyRate}" />
                <telerik:GridViewDataColumn Header="Rights" DataMemberBinding="{Binding Rights.Description}"  />
                <telerik:GridViewDataColumn Header="Status" DataMemberBinding="{Binding StatusId}" />

            </telerik:RadGridView.Columns>
        </telerik:RadGridView>
        <telerik:RadDataPager x:Name="RadDataPager1" Source="{Binding CovrUsers, ElementName=FirstName}" DisplayMode="All" IsTotalItemCountFixed="True" Margin="230,0,0,0" VerticalAlignment="Bottom" FontSize="11" />


thx帮助:)

您需要使用ValueConverter将状态值转换为图像。大概是这样的:

public class CommentTypeIconConverter : IValueConverter
    {
        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if(value != null)
            {
                int ct = int.Parse(value.ToString());
                if(ct == 10)
                {
                    StreamResourceInfo sr = Application.GetResourceStream(
                        new Uri("Assets/greencross.png", UriKind.Relative));
                    BitmapImage bmp = new BitmapImage();
                    bmp.SetSource(sr.Stream);

                    return bmp;
                }
                else
                {
                    StreamResourceInfo sr = Application.GetResourceStream(
                    new Uri("Assets/redcross.png", UriKind.Relative));
                    BitmapImage bmp = new BitmapImage();
                    bmp.SetSource(sr.Stream);

                    return bmp;
                }
            }
            else
            {
                StreamResourceInfo sr = Application.GetResourceStream(
                    new Uri("Assets/empty.png", UriKind.Relative));
                BitmapImage bmp = new BitmapImage();
                bmp.SetSource(sr.Stream);

                return bmp;
            }
        }

        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            throw new NotImplementedException();
        }
    }

阅读本文,了解如何使用页面上的值转换器。

以及如何在我的视图中使用转换器?嗯,它几乎可以工作,但我找不到我的图像,似乎~/Images/active.jpg不工作?Sr=null…在我的示例中,您不需要~I'm using UriKind.Relative,因此路径必须与应用程序的路径相对。此外,我的示例是从资源获取图像,因此我将图像放在Silverlight项目中名为Assets的文件夹中,它的BuildAction属性设置为“Content”jpg应该可以。silverlight BitmapImage类仅支持jpg和png