【发布时间】:2018-02-07 13:50:44
【问题描述】:
我正在尝试通过后面的代码将图像绑定到ListView。目标是用 C# 编写这部分代码。代码中的绑定如何工作?
这是我的 xaml 代码:
<ListView x:FieldModifier="public" x:Name="MyListView" HorizontalAlignment="Left" VerticalAlignment="Top" ItemsSource="{Binding ListViewDataList}">
<ListView.View>
<GridView x:Uid="GridViewTest">
<GridViewColumn Header="Column1" DisplayMemberBinding="{Binding Column1Text}"/>
<GridViewColumn Header="Column2">
<GridViewColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image Width="50" Height="50" Source="{Binding Column2Img}"/>
</StackPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Column1Text 和 Column2Img 是属性。 我尝试过这样的事情:
GridView MyGridView = new GridView();
GridViewColumn gvc1 = new GridViewColumn();
gvc1.DisplayMemberBinding = new Binding("Column1Text");
gvc1.Header = "Column1";
MyGridView.Columns.Add(gvc1);
System.Windows.Controls.Image img = new System.Windows.Controls.Image();
img.Height = 50;
img.Width = 50;
img.Source = new Binding("Column2Img");
FrameworkElementFactory spFactory = new FrameworkElementFactory(typeof(StackPanel));
spFactory.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);
DataTemplate dt = new DataTemplate();
dt.VisualTree = spFactory;
GridViewColumn gvc2 = new GridViewColumn();
gvc2.Header = "Column2";
gvc2.CellTemplate = dt;
MyGridView.Columns.Add(gvc2);
MyListView.View = MyGridView;
但是后面代码中的图像绑定不起作用。
【问题讨论】:
-
在您的绑定上使用转换器,您应该没问题。但你的形象是什么?字符串、字节[]、图像源、位图? byte example.
-
@XAMlMAX 图像是字符串类型。