是否可以为图像控件绑定
设置2个数据字段**<Image Source="{Binding ItemID, Converter={StaticResource IDToImageConverter}}" Height="50" />**
现在我需要再添加一个价值Price。需要发送均价作为IDToImageConverter函数的参数
我该怎么做?
现在我需要先检查价格值我需要检查3个条件
在我的IDToImageConverter函数
中if( price> 5o)
{
// then get the ItemID based on the value bind image here
if(ItemID >20)
{
// bind image1
}
if(ItemID >50)
{
// bind image2
}
}
if( price> 100)
{
// as above codition we do here
}
现在我如何在IDToImageConverter中添加以上功能? 任何想法我怎么解决它
<Image Source="{Binding ItemID, Converter={StaticResource IDToImageConverter}}" Height="50" />
</DataTemplate>
</data:DataGridTemplateColumn.CellTemplate>
</data:DataGridTemplateColumn>
</data:DataGrid.Columns>
</data:DataGrid>
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);
}
提前谢谢。对于你提供的任何帮助
王子
答案 0 :(得分:0)
开箱即用,这是不可能的。 SL不支持MultiBinding,并且ConverterParameter选项不可绑定(否则,您可以执行类似Source = {Binding ItemID,Converter = {...},ConverterParameter = {Binding Price}}的操作 - 但正如我所说,那不是可能的)。
恕我直言,最好的解决方案是在您可以绑定到的ViewModel / data对象中提供ImageUrl属性:
public Uri ImageUrl
{
get
{
if (Price > 50)
{
if (ItemID > 20)
return new Uri("...");
//...
}
//...
}
}
如果这不是一个选项,您可以尝试这里描述的MultiBinding解决方法: http://www.scottlogic.co.uk/blog/colin/2010/05/silverlight-multibinding-solution-for-silverlight-4/
干杯,亚历克斯