【发布时间】:2017-10-25 19:38:00
【问题描述】:
XAML 代码:
<ListView x:Name="ListDisplay"
Grid.Column="1">
<ListView.View>
<GridView>
<GridViewColumn x:Name="Column_1"
x:FieldModifier="private"
Header="Column1"
Width="200">
<GridViewColumn.CellTemplate>
<DataTemplate>
<DockPanel>
<Image Width="15"
Height="15"
Source="{Binding Icon}"
DockPanel.Dock="Left"/>
<Label Content="{Binding Column1_Content}"
Width="180"
FontSize="12"
HorizontalContentAlignment="Left"
DockPanel.Dock="Left"/>
</DockPanel>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
<GridViewColumn x:Name="Column_2" x:FieldModifier="private"
Header="Column2"
DisplayMemberBinding="{Binding Column2_Content}"
Width="175"/>
<GridViewColumn x:Name="Column_3"
x:FieldModifier="private"
Header="Column3"
DisplayMemberBinding="{Binding Column3_Content}"
Width="100"/>
<GridViewColumn x:Name="Column_4" x:FieldModifier="private"
Header="Column4"
DisplayMemberBinding="{Binding Column4_Content}"
Width="100"/>
</GridView>
</ListView.View>
</ListView>
C# 类:
internal class MyDataClass
{
public BitmapSource Icon { get; set; }
public string Column1_Content { get; set; }
public string Column2_Content { get; set; }
public string Column3_Content { get; set; }
public string Column4_Content { get; set; }
}
这基本上是一个有 4 列的 ListView,第一列左侧有一个图像。到目前为止一切正常。
我想做的是改变整体
<ListView.View>
...
</ListView.View>
部分代码转换成c#代码。
所以代码将如下所示:
GridView View = new GridView();
GridViewColumn Column_2 = new GridViewColumn()
{
Header = "Column2",
DisplayMemberBinding = new Binding("Column2_Content"),
Width = 175
};
// Same thing for columns 3 and 4
View.Columns.Add(Column_2);
View.Columns.Add(Column_3);
View.Columns.Add(Column_4);
ListDisplay.View = View;
问题是,我完全不知道如何对图标源和标签内容进行绑定,并以编程方式(在 c# 中)为第 1 列创建 GridViewColumn。
【问题讨论】:
标签: c# wpf gridview data-binding