2011-05-22 113 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

希望這可以幫助:)