Silverlight将映像绑定到datagrid中的Id
我正在尝试将一个图像绑定到网格中的一个Id,在这个网格中我显示了我的所有用户。有人知道怎么做吗? 我有一个表用户,其中有一个名为StatusId的字段 有两种状态 状态1:Id:10 |激活 状态2:Id:90 |非活动 当状态为10时,我想显示绿色十字,当状态为90时,我想显示红色十字 我正在使用Mvvm模式 这是我的网格代码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
<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