ListView를 개체 목록에 바인딩합니다.XAML을 사용하여 System.Drawing.Image를 System.Windows.Image 컨트롤에 바인딩
<ListView
ItemsSource="{ Binding Path=. }"
ItemTemplate="{DynamicResource EventTemplate}">
두 속성을 선언하는 개체에 바인딩됩니다.
string DisplayName { get; }
System.Drawing.Image Image { get; set; }
나는 DataTemplate
을 채우려하지만 난 방법을 알아낼 수 없습니다; 내 템플리트에서 이렇게하면
<StackPanel Orientation="Horizontal">
<Image Source="{ Binding Path=Image }" />
<TextBlock Text="{ Binding Path=DisplayName }" />
</StackPanel>
텍스트는 표시되지만 이미지는 표시되지 않습니다. 내가 도대체 뭘 잘못하고있는 겁니까? 디버그 출력에
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')
메모리 사용량에 대한 질문이 있습니다.이 변환은 한 번만 또는 이미지가 표시되는 부분, 즉 ListBox에 표시 될 때마다 발생합니까 ?? – emesx
정말 말할 수 없다 - WPF가 필요할 때마다 변환이 이루어 지므로 내부 구현 세부 사항이라고 생각합니다. 나는 그것이 반복해서 반복 될 이유가 없다고 생각하지만, 카운터에 집착하고 볼 가치가있을 것입니다. –
'memoryStream'은 절대로 닫히지 않거나 폐기 될 수 없습니까? 나는 아주 비슷한 코드를 가지고있다. 심지어이 질문에서 나온 것일 수도 있지만, 그것은 더 추운 것이다. – Maslow