Привязка Silverlight к идентификатору в сетке данных - PullRequest
0 голосов
/ 16 марта 2011

Я пытаюсь привязать изображение к идентификатору в сетке, где я показываю всех своих пользователей.Кто-нибудь знает, как это сделать?У меня есть таблица User, в которой есть поле с именем StatusId.

Существует 2 вида статуса

Status1: Id: 10 |активный Status2: 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" />

Спасибо за помощь:)

1 Ответ

0 голосов
/ 16 марта 2011

Вы захотите использовать 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();
        }
    }

Прочитайте эту ссылку , чтобы узнать, как использовать конвертер значений на своей странице.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...