Возможно прямое связывание BitmapImage, созданного внутри класса, привязанного к ListBox в WPF? - PullRequest
1 голос
/ 01 сентября 2011

Я добавляю объект непосредственно в ListBox, и внутри этого класса у меня есть объект BitmapImage. Я использую ItemTemplate:

<ListBox.ItemTemplate>
    <DataTemplate>
        <StackPanel>
            <Image Source="{Binding Path=ElementIcon}"></Image>
            <TextBlock Text="{Binding Path=ElementName}"/>
        </StackPanel>
    </DataTemplate>
</ListBox.ItemTemplate>

И я напрямую добавляю объект этого класса:

Public Class ExplorerClass
    Implements INotifyPropertyChanged
    Public Property ElementType As String = Nothing
    Public Property ElementName As String = Nothing
    Public Property ElementContainer As String = Nothing
    Public Property ElementIcon As New BitmapImage
    Public Event PropertyChanged As PropertyChangedEventHandler Implements INotifyPropertyChanged.PropertyChanged
    Private Sub NotifyPropertyChanged(ByVal info As String)
        RaiseEvent PropertyChanged(Me, New PropertyChangedEventArgs(info))
    End Sub

    Public Sub New(ByVal WantedElementContainer As String, ByVal WantedElementName As String, ByVal WantedElementType As String)
        ElementType = WantedElementType
        ElementName = WantedElementName
        ElementContainer = WantedElementContainer
        Dim str As New MemoryStream
        Dim IWorking As Icon = showIcon(ElementName.Substring(ElementName.LastIndexOf(".")))
        IWorking.ToBitmap.Save(str, System.Drawing.Imaging.ImageFormat.Png)
        ElementIcon.BeginInit()
        ElementIcon.StreamSource = str
        ElementIcon.EndInit()
        NotifyPropertyChanged("ElementIcon")
    End Sub
End Class

Но, нет показанных картинок; Итак, мой вопрос: «Как я могу связать BitmapImage»?

1 Ответ

1 голос
/ 01 сентября 2011

Похоже, вы не используете интерфейс INotifyPropertyChanged . Взгляните на эту страницу на MSDN . Я не уверен, что это тоже проблема, но попробуйте установить высоту и ширину изображения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...