如何创建列表视图到网格编程 [英] how to create listview to a grid programmatically

查看:103
本文介绍了如何创建列表视图到网格编程的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个网格列和行定义。通过了解项目的X数量,我可以把它添加到我的XAML没有问题。 Unfortuantely我想以编程方式创建列表视图,因为我想根据项目执行我的SP时,我得到的X数量来填充他们。这是我的XAML。标签有从SP结果给定的内容分配过多。可有人告诉我如何编程创建此?

 <电网NAME =grdItemsWIDTH =939Grid.Row =1的Horizo​​ntalAlignment =左的DataContext ={结合}保证金=5&GT ;
    < Grid.RowDefinitions>
        < RowDefinition HEIGHT =25>< / RowDefinition>
        < RowDefinition高度=自动>< / RowDefinition>
        < RowDefinition HEIGHT =5>< / RowDefinition>
        < RowDefinition HEIGHT =25>< / RowDefinition>
        < RowDefinition高度=自动>< / RowDefinition>
        < RowDefinition HEIGHT =5>< / RowDefinition>
    < /Grid.RowDefinitions>
    < Grid.ColumnDefinitions>
        < ColumnDefinition WIDTH =231>< / ColumnDefinition>
        < ColumnDefinition WIDTH =5>< / ColumnDefinition>
        < ColumnDefinition WIDTH =231>< / ColumnDefinition>
        < ColumnDefinition WIDTH =5>< / ColumnDefinition>
        < ColumnDefinition WIDTH =231>< / ColumnDefinition>
        < ColumnDefinition WIDTH =5>< / ColumnDefinition>
        < ColumnDefinition WIDTH =231>< / ColumnDefinition>
    < /Grid.ColumnDefinitions>    <标签名称=lblItemGrid.Row =0Grid.Column =0CONTENT =项标签/>
    < ListView控件名称=lstFirstItem的Horizo​​ntalAlignment =左VerticalAlignment =顶部
                    身高=自动保证金=0,0,0,0的ItemsSource =粗细=正规军
                    Grid.Column =0Grid.Row =1>
        < ListView.View>
            <&GridView的GT;
                < GridView.ColumnHeaderContainerStyle>
                    <样式和GT;
                        < setter属性=FrameworkElement.VisibilityVALUE =折叠/>
                    < /样式和GT;
                < /GridView.ColumnHeaderContainerStyle>
                < GridViewColumn WIDTH =58DisplayMemberBinding ={结合ITEMNAME}>< / GridViewColumn>
                < GridViewColumn WIDTH =174.25DisplayMemberBinding ={结合ItemDescription}>< / GridViewColumn>
            < / GridView的>
        < /ListView.View>
    < /&的ListView GT;
< /网格和GT;


解决方案

我们可以动态地从code后面添加行或列。

中序添加行:

  GridLength的rowHeight =新GridLength(100); //你自己的价值,我们可以给*,汽车以及
    RowDefinition rowDef =新RowDefinition {身高=的rowHeight};
    mainGrid.RowDefinitions.Add(rowDef);

中序添加colomns:

  GridLength columnWidth时=新GridLength(100);
    ColumnDefinition colDef =新ColumnDefinition {宽度= columnWidth时};
    mainGrid.ColumnDefinitions.Add(colDef);

中序在特定行添加文字块,列

  TextBlock的文本块=新的TextBlock();
    textBlock.Text =一些价值;
    Grid.SetRow(文字块,的rowNum);
    Grid.SetColumn(文字块,colNum);
    mainGrid.Children.Add(文字块);

希望这回答你的问题。

I have a grid with columns and rows define. By knowing x amount of items, I can add it to my xaml no problem. Unfortuantely I want to create the listview programatically because I want to populate them based on x amount of item I get when executing my SP. Here is my xaml. The label is there to assign a given content from the SP result too. Can someone show me how create this programatically?

<Grid Name="grdItems" Width="939" Grid.Row="1" HorizontalAlignment="Left" DataContext="{Binding}" Margin="5">
    <Grid.RowDefinitions>
        <RowDefinition Height="25"></RowDefinition>
        <RowDefinition Height="auto"></RowDefinition>
        <RowDefinition Height="5"></RowDefinition>
        <RowDefinition Height="25"></RowDefinition>
        <RowDefinition Height="auto"></RowDefinition>
        <RowDefinition Height="5"></RowDefinition>
    </Grid.RowDefinitions>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="231"></ColumnDefinition>
        <ColumnDefinition Width="5"></ColumnDefinition>
        <ColumnDefinition Width="231"></ColumnDefinition>
        <ColumnDefinition Width="5"></ColumnDefinition>
        <ColumnDefinition Width="231"></ColumnDefinition>
        <ColumnDefinition Width="5"></ColumnDefinition>
        <ColumnDefinition Width="231"></ColumnDefinition>
    </Grid.ColumnDefinitions>

    <Label Name="lblItem" Grid.Row="0" Grid.Column="0" Content="item label" />
    <ListView Name="lstFirstItem" HorizontalAlignment="Left" VerticalAlignment="Top" 
                    Height="auto" Margin="0,0,0,0" ItemsSource="" FontWeight="Regular" 
                    Grid.Column="0" Grid.Row="1">
        <ListView.View>
            <GridView>
                <GridView.ColumnHeaderContainerStyle>
                    <Style>
                        <Setter Property="FrameworkElement.Visibility" Value="Collapsed"/>
                    </Style>
                </GridView.ColumnHeaderContainerStyle>
                <GridViewColumn Width="58" DisplayMemberBinding="{Binding ItemName}"></GridViewColumn>
                <GridViewColumn Width="174.25" DisplayMemberBinding="{Binding ItemDescription}"></GridViewColumn>
            </GridView>
        </ListView.View>
    </ListView>
</Grid>

解决方案

we can add rows or columns dynamically from code behind.

Inorder to add rows:

    GridLength rowheight = new GridLength(100);  //your own value we can give *,Auto as well  
    RowDefinition rowDef = new RowDefinition {Height = rowheight };    
    mainGrid.RowDefinitions.Add(rowDef);

Inorder to add colomns:

    GridLength columnwidth = new GridLength(100);        
    ColumnDefinition colDef = new ColumnDefinition { Width = columnwidth};        
    mainGrid.ColumnDefinitions.Add(colDef );    

Inorder to add textblock at particular row,column

    TextBlock textBlock = new TextBlock();        
    textBlock.Text = "Some Value";       
    Grid.SetRow(textBlock, rowNum);        
    Grid.SetColumn(textBlock, colNum);
    mainGrid.Children.Add(textBlock);  

Hope this answers your question

这篇关于如何创建列表视图到网格编程的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆