Construct listview with c#
本文关键字:with listview Construct | 更新日期: 2023-09-27 18:27:47
假设我在xaml:中有以下列表视图
<ListView Name="myListView" DataContext="{Binding MyProperty}" ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True">
<ListView.Resources>
<Style TargetType="GridViewColumnHeader">
<Setter Property="Visibility" Value="Collapsed" />
</Style>
</ListView.Resources>
<ListView.View>
<GridView >
<GridViewColumn Width="Auto">
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding SomeProperty}" TextAlignment="Center"></TextBlock>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
如何使用C#创建相同的列表视图
这就是我所做的:
ListView myListView = new ListView();
// set bindings
myListView.IsSynchronizedWithCurrentItem = true;
Binding b = new Binding("MyProperty")
{
Source = this
};
myListView.SetBinding(ListView.ItemsSourceProperty, b);
myListView.Resources.Add(; // dont know how to add those resource;
GridView g = new GridView();
GridViewColumn gc = new GridViewColumn();
DataTemplate dt = new DataTemplate(new TextBlock()); // I think this is wrong
g.Columns.Add(gc); // add gridview column
gc.CellTemplate = dt;
myListView.View = g;
资源添加:
view.Resources.Add(typeof(GridViewColumnHeader),
new Style(typeof(GridViewColumnHeader))
{
Setters =
{
new Setter(GridViewColumnHeader.VisibilityProperty, Visibility.Collapsed)
}
}
);
数据模板创建:
var template = new DataTemplate();
var textBlock = new FrameworkElementFactory(typeof(TextBlock));
textBlock.SetBinding(TextBlock.TextProperty, new Binding("SomeProperty"));
textBlock.SetValue(TextBlock.TextAlignmentProperty, TextAlignment.Center);
template.VisualTree = textBlock;