2011-05-22 7 views
0

DataGrid:Comment définir l'image par défaut?

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

Converter si la valeur non retour uri iamge de ImageResource.noimage. Mais cette bitmap ... Comment retourner l'URI sur bitmap?

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(); 
      } 
     } 

Répondre

0

La propriété Source du Image attend un ImageSource, et non un URI. Cela fonctionne en xaml grâce à un TypeConverter. Vous pouvez créer un bitmapImage à partir du chemin et le renvoyer comme indiqué here.

Si je comprends bien, la deuxième partie du problème est que vous voulez lier (comme une valeur par défaut) à une image à partir d'un fichier de ressources. Si c'est le cas, voici un article on how to do that on MSDN

espérons que cela aide :)

Questions connexes