如何在没有绑定WPF的情况下将项添加到listview中

时间:2013-01-11 11:57:46

标签: c# wpf listview gridview

我想将一些项添加到作为gridview的列表视图中。 我想通过代码实现它而不实现绑定选项,只需将值添加到某种单元格集中 我知道这不是WPF方式,但我迫切需要这样做,我似乎无法找到我正在寻找的答案。
我查看了multibind,转换器和常规绑定,但它不会给我现在需要的答案。

甚至可能吗?
如果是这样我该怎么办?

3 个答案:

答案 0 :(得分:1)

您需要索引绑定,例如“[0]”。




 < Grid>
 < ListView x:Name =“lv”/>
</Grid>



lv.Items.Clear();
 var gv = new GridView();&#xA; lv.View = gv;&#xA;&#xA; var columns = new List&lt; string&gt; {“col1”,“col2”};&#xA; for(int index = 0; index&lt; columns.Count; index ++)&#xA; {&#xA; gv.Columns.Add(new GridViewColumn&#xA; {&#xA; Header = columns [index],&#xA; DisplayMemberBinding = new Binding(“[”+ index.ToString()+“]”)&#xA; }&;&#xA;}&#xA;&#xA; //填充列表&#xA; var row1 = new List&lt; string&gt; {“(1,1)”,“(2,1)”};&#xA; var row2 = new List&lt; string&gt; {“(1,2)”,“(2,2)”};&#xA; lv.Items.Add(row1);&#xA; lv.Items.Add(row2);&#xA;  
&#XA;

答案 1 :(得分:0)

您可以使用DataGrid代替ListView吗?然后,您可以将AutoGenerateColumns设置为true(默认情况下为true)。

<DataGrid x:Name="myDataGrid" AutoGenerateColumns="True"/>

然后在后面的代码中执行以下操作:

myDataGrid.Items = new List<MyDataType>();
foreach(var item in itemsToAdd){
    myDataGrid.Items.Add(item);
}

或更短:

myDataGrid.ItemsSource = myListOfItems;

答案 2 :(得分:0)

不要挂断是否在代码隐藏中加载或不加载控件。我已经完成了主要的Silverlight项目,它们是两个操作的混合体。

public MainWindow()
{
    InitializeComponent();

    lvPrimary.ItemsSource = new List<string> { "Alpha", "Beta", "Gamma" };

}

Xaml看起来像这样:

<Window x:Class="WPFStackOverflow.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <ListView Name="lvPrimary" Width="200"/>
    </Grid>
</Window>