2011-05-22 109 views
0

的DataGrid:如何设置默认图片?

<sdk:DataGridTemplateColumn> 
         <sdk:DataGridTemplateColumn.CellTemplate> 
          <DataTemplate> 
           <Image Tag="{Binding photo}" MinWidth="50" Source="{Binding photo, Converter={StaticResource ConvertNullImageKey}}"/> 
          </DataTemplate> 
         </sdk:DataGridTemplateColumn.CellTemplate> 
        </sdk:DataGridTemplateColumn> 

转换器,如果没有价值回归的URI从iamge ImageResource.noimage。但是,这个位图...如何返回位图上的URI?

public class ConvertNullImage : IValueConverter 
     { 
      public object Convert(object value, Type targetType, object parameter, CultureInfo culture) 
      { 
       try 
       { 
        Uri uri = new Uri(value.ToString(), UriKind.Relative); 
        return uri; 
       } 
       catch { return new Uri(ImageResource.noimage); } 
      } 

      public object ConvertBack(object value, Type targetType, object parameter, 
             CultureInfo culture) 
      { 
       throw new NotImplementedException(); 
      } 
     } 

回答

0

ImageSource属性需要一个ImageSource,而不是一个URI。这在xaml中有效,这归功于TypeConverter。您可以从路径创建一个BitmapImage并返回,如here所示。

如果我理解正确,问题的第二部分是您想要(从默认值)绑定到资源文件中的图像。如果是这样,这里是一个article on how to do that on MSDN

希望这可以帮助:)