Silverlight 4.0 Datagrid绑定一列下的2个数据字段以及一个图像?

Silverlight 4.0 Datagrid绑定一列下的2个数据字段以及一个图像?,silverlight-4.0,Silverlight 4.0,在这里,我正在执行嵌套网格操作,在我的第一个datagrid中。有姓名、年龄、地址 一旦用户单击该行,我们将显示另一个带有数据主题名称和分数的网格 在此之前,该功能工作正常 1:现在的问题是,我应该在同一列中显示一张带有分数的图像(我如何才能获得这张图像) 2:根据分数,我需要显示图像(根据分数绑定不同的图像) 3:也就是说,如果分数是20,那么show(~images/image3.jpg) 我们如何解决这个问题。你知道怎么做吗。请让我知道。 希望我的问题清楚 提前谢谢 普林斯既然您用Silv

在这里,我正在执行嵌套网格操作,在我的第一个datagrid中。有姓名、年龄、地址

一旦用户单击该行,我们将显示另一个带有数据主题名称和分数的网格

在此之前,该功能工作正常

1:现在的问题是,我应该在同一列中显示一张带有分数的图像(我如何才能获得这张图像)

2:根据分数,我需要显示图像(根据分数绑定不同的图像)

3:也就是说,如果分数是20,那么show(~images/image3.jpg)

我们如何解决这个问题。你知道怎么做吗。请让我知道。 希望我的问题清楚

提前谢谢


普林斯

既然您用Silverlight v4.0为这个问题添加了标签,那么我假设您正试图用上述技术来实现这一点。一种方法是添加一个转换器作为静态资源,然后使用所述转换器拉入数据。出于所有目的,我假设图像文件的命名格式为imageX.jpg,其中X等于分数,但您可以使用您喜欢的任何格式。请参阅以下未经测试的XAML和C代码示例:


公共类IDToImageConverter:IValueConverter
{ 
公共对象转换(对象值、类型targetType、对象参数、System.Globalization.CultureInfo区域性)
{ 
Uri=新Uri(“~/Images/”+value.ToString()+”.jpg“,UriKind.Relative);
返回新的位图图像(uri);
}

即使这段代码也是用xaml专用的公共类IDToImageConverter编写的:IValueConverter{public object Convert(object value,Type targetType,object parameter,System.Globalization.CultureInfo culture){Uri Uri Uri=new Uri(“~/Images/”+value.ToString()+”.jpg),UriKind.Relative);返回新的位图图像(uri);}或者在类文件中?您可以内联编写,但我建议创建一个单独的类文件。我只是为了演示目的快速地将一些内容放在一起。感谢重播,甚至这个url都可以帮助我解决我们为什么要使用它的问题。这是一个演示如何通过服务撤回数据的示例。您感兴趣的行是用于转换的c#代码和xaml中的图像源代码行。其余只是一个示例。
1 :that is if score is 20 show ( ~images/image1.jpg)

2 :that is if score is 40 show ( ~images/image2.jpg)
output [ in a grid  format]
 subject score  
 science  45 image3
 maths    50 image2
 Computer 60 image1
 general  78 image1
<USERCONTROL.RESOURCES>
    <UserControl.Resources> 
        <SvcTest:DSTest x:Key="DSTest" d:IsDataSource="True"/> 
<local:IDToImageConverter x:Key="IDToImageConverter"/> 
</UserControl.Resources>
<UserControl.Resources> 
<StackPanel x:Name="OurStack" Orientation="Vertical"> 
    <TextBox x:Name="InputText"/> 
    <TextBlock x:Name="OutputText"/> 
    <Button x:Name="CallServiceButton" Content="Call WCF" Click="CallServiceButton_Click"/> 
    <data:DataGrid x:Name="theDataGrid" AlternatingRowBackground="Beige" Grid.Row="2" Grid.Column="1" Height=" 600" Width="800" CanUserResizeColumns="True" AutoGenerateColumns="False"> 
        <data:DataGrid.Columns> 
            <data:DataGridTextColumn Header="InventTypeID" Width="100"  Binding="{Binding InventTypeID}" /> 
<data:DataGridTemplateColumn Header="ImageColumn" DisplayIndex="1" > 
<data:DataGridTemplateColumn.CellTemplate> 
<DataTemplate> 

<Image Source="{Binding ItemID, Converter={StaticResource IDToImageConverter}}" Height="50" /> 
</DataTemplate> 
</data:DataGridTemplateColumn.CellTemplate> 
</data:DataGridTemplateColumn> 
</data:DataGrid.Columns> 
</data:DataGrid> 
</StackPanel>
<?xml:namespace prefix = local /><local:IDToImageConverter x:Key="IDToImageConverter"></local:IDToImageConverter>
</USERCONTROL.RESOURCES>

    public class IDToImageConverter : IValueConverter 
    { 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
    Uri uri = new Uri("~/Images/" + value.ToString()+ ".jpg", UriKind.Relative); 
    return new BitmapImage(uri); 
    }

<GRID Background="White" x:Name="LayoutRoot">
<STACKPANEL x:Name="OurStack" Orientation="Vertical">
<TEXTBOX x:Name="InputText" />
<TEXTBLOCK x:Name="OutputText" />