这里我在我的第一个数据网格中执行嵌套网格操作。有姓名,年龄,地址
一旦用户点击该行,我们将显示另一个包含数据主题名称和分数
的网格直到这里功能正常。
1:现在问题是我应该在同一列中显示图像和得分(我怎么能得到这个)
2:根据分数,我需要显示图像(根据分数绑定不同的图像)
1 :that is if score is 20 show ( ~images/image1.jpg)
2 :that is if score is 40 show ( ~images/image2.jpg)
3:即如果得分是20显示(〜images / image3.jpg)
output [ in a grid format]
subject score
science 45 image3
maths 50 image2
Computer 60 image1
general 78 image1
我们如何解决这个问题。任何想法如何继续前进。请告诉我。 希望我的问题很清楚
提前致谢
王子
答案 0 :(得分:1)
由于您使用Silverlight v4.0标记了此问题,我将假设您正尝试在所述技术中实现此目的。实现这一目标的一种方法是将转换器添加为静态资源,然后使用所述转换器来提取数据。出于所有密集目的,我假设图像文件以imageX.jpg格式命名,其中X等于分数,但您可以使用您喜欢的任何格式。请参阅下面未经测试的XAML和C#代码示例:
<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" />