Estoy vinculando un ListView a una lista de objetos, como tal;usando XAML para enlazar a System.Drawing.Image en un control System.Windows.Image
<ListView
ItemsSource="{ Binding Path=. }"
ItemTemplate="{DynamicResource EventTemplate}">
Estoy vinculando a un objeto que declara dos propiedades;
string DisplayName { get; }
System.Drawing.Image Image { get; set; }
Quiero llenar un DataTemplate
pero no puedo encontrar la manera; si hago esto en mi plantilla;
<StackPanel Orientation="Horizontal">
<Image Source="{ Binding Path=Image }" />
<TextBlock Text="{ Binding Path=DisplayName }" />
</StackPanel>
Aparece el texto pero la imagen no. ¿Qué estoy haciendo mal? El resultado de la depuración muestra
System.Windows.Data Error: 1 : Cannot create default converter
to perform 'one-way' conversions between types
'System.Drawing.Image' and 'System.Windows.Media.ImageSource'.
Consider using Converter property of Binding.
BindingExpression:Path=Image; DataItem='RealElement'
(HashCode=54308798); target element is 'Image' (Name='');
target property is 'Source' (type 'ImageSource')
Tengo una pregunta sobre el uso de la memoria: ¿esta conversión tiene lugar solo una vez o cada vez que se muestra la imagen en la parte visible de, por ejemplo, ListBox? – emesx
Realmente no puedo decir: la conversión se realiza cada vez que WPF lo necesita, así que creo que es solo un detalle interno de la implementación. No creo que haya ninguna razón para que se convierta una y otra vez, pero podría valer la pena meterse en un mostrador y ver ... –
'memoryStream' nunca se cierra o se desecha, ¿eso es una preocupación aquí? Tengo un código muy similar, que incluso podría haber surgido de esta pregunta, pero es más feo. – Maslow