开发者

Silverlight binding image to Id in datagrid

Im trying to bind an image to an Id in a grid where I show all my users. Does anybody knows how to do this? I've got a table User where there is a field called StatusId.

There are 2 kinds of status

Status1: Id:10 | active Status2: Id:90 | Non-active

When the status is 10 I want to show a green cross, when it's 90 I want to show Red cross.

I'm working with the Mvvm pattern.

Here is my gridcode.

<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:GridViewDataColu开发者_开发百科mn 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 for the help :)


You'll want to use a ValueConverter to convert your Status value into an image. Something like this:

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();
        }
    }

Read this link to learn about how to use the value converter on your page.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜