ListView ItemTemplate与Base64String

时间:2014-08-01 21:28:26

标签: c# wpf .net-4.0

我正在处理一个C#图像,我收到一条XML消息,其中一个元素是基本的64位编码图像。

我在WPF元素中使用动态数据绑定,我想将图像添加到列表项。

以下是我目前正在使用的WPF

<ListView Height="397" HorizontalAlignment="Left" Margin="491,29,0,0" Name="lstCallLogInformation" 
                 VerticalAlignment="Top" Width="320">
            <ListView.GroupStyle>
                <GroupStyle>
                    <GroupStyle.ContainerStyle>
                        <Style TargetType="{x:Type GroupItem}">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate>
                                        <Expander IsExpanded="True">
                                            <Expander.Header>
                                                <StackPanel Orientation="Horizontal">
                                                    <TextBlock Text="{Binding Name}" FontWeight="Bold" Foreground="Gray" VerticalAlignment="Bottom" />
                                                </StackPanel>
                                            </Expander.Header>
                                            <Expander.Content>
                                                <ItemsPresenter />
                                            </Expander.Content>
                                        </Expander>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </Style>
                    </GroupStyle.ContainerStyle>
                </GroupStyle>
            </ListView.GroupStyle>
            <ListView.ItemTemplate>
                <DataTemplate>
                    <DockPanel>
                        <StackPanel Orientation="Vertical">
                            <TextBlock Text="{Binding contactNameOrPhoneNumber}" FontWeight="Bold" />
                            <StackPanel Orientation="Horizontal">
                                <TextBlock Text="{Binding dateString}" HorizontalAlignment="Left" />
                                <TextBlock Text="{Binding callDuration}" HorizontalAlignment="Right" />
                            </StackPanel>
                        </StackPanel>
                    </DockPanel>
                </DataTemplate>
            </ListView.ItemTemplate>
        </ListView>

所以基本上在StackPanel中我希望有类似的东西:

<Image Source="{Binding myBase64EncodedProperty}" />

我找不到任何关于如何做到这一点的事情。

1 个答案:

答案 0 :(得分:1)

您需要做的是将Base64字符串转换为BitmapImage。我不打算复制/粘贴或重复答案,但请查看您要解决的确切问题的答案:https://stackoverflow.com/a/593489/347172