当前位置:编程学习 > C#/ASP.NET >>

WPF中gridview的一些问题

WPF中关于gridview有几个问题希望高手指点一下:
1.如何控制行内容居中
2.如何显示gridline
3.如何实现分页
4.什么方法可以实现类似.net2.0控件里面Tag的字段,可以让我每一行中存放一个对象,选中该行可以方便得到这个对象 --------------------编程问答-------------------- reply:

1:GridView.HorHorizontalAlign = "Center" 如果用的是模版列,写在它里面

2 GridLines.None      不显示网格线。
  GridLines.Horizontal      仅显示水平网格线。
  GridLines.Vertical       仅显示垂直网格线。 
  GridLines.Both       同时显示水平和垂直网格线。

3 在导入GridView的时候,选上分页选项

4 没懂你的意思 --------------------编程问答-------------------- 楼上朋友用的是WPF的GRIDVIEW吗,我为什么没看到有这样一来的属性啊,以前用WINFORM,是可以通过你说的方法实现的.如果你知道,麻烦你说的具体一点,谢谢了,搞清楚可以马上给分 --------------------编程问答-------------------- 貌似wpf只有Grid吧。。。这个Grid是个panel,用来摆放其它控件的

// Create the application's main window
mainWindow = new Window();
mainWindow.Title = "Grid Sample";

// Create the Grid
Grid myGrid = new Grid();
myGrid.Width = 250;
myGrid.Height = 100;
myGrid.HorizontalAlignment = HorizontalAlignment.Left;//水平居中改为Center即可
myGrid.VerticalAlignment = VerticalAlignment.Top;
myGrid.ShowGridLines = true;//显示gridline

// Define the Columns
ColumnDefinition colDef1 = new ColumnDefinition();
ColumnDefinition colDef2 = new ColumnDefinition();
ColumnDefinition colDef3 = new ColumnDefinition();
myGrid.ColumnDefinitions.Add(colDef1);
myGrid.ColumnDefinitions.Add(colDef2);
myGrid.ColumnDefinitions.Add(colDef3);

// Define the Rows
RowDefinition rowDef1 = new RowDefinition();
RowDefinition rowDef2 = new RowDefinition();
RowDefinition rowDef3 = new RowDefinition();
RowDefinition rowDef4 = new RowDefinition();
myGrid.RowDefinitions.Add(rowDef1);
myGrid.RowDefinitions.Add(rowDef2);
myGrid.RowDefinitions.Add(rowDef3);
myGrid.RowDefinitions.Add(rowDef4);

// Add the first text cell to the Grid
TextBlock txt1 = new TextBlock();
txt1.Text = "2005 Products Shipped";
txt1.FontSize = 20; 
txt1.FontWeight = FontWeights.Bold;
Grid.SetColumnSpan(txt1, 3);
Grid.SetRow(txt1, 0);

// Add the second text cell to the Grid
TextBlock txt2 = new TextBlock();
txt2.Text = "Quarter 1";
txt2.FontSize = 12;
txt2.FontWeight = FontWeights.Bold;
Grid.SetRow(txt2, 1);
Grid.SetColumn(txt2, 0);

// Add the third text cell to the Grid
TextBlock txt3 = new TextBlock();
txt3.Text = "Quarter 2";
txt3.FontSize = 12;
txt3.FontWeight = FontWeights.Bold;
Grid.SetRow(txt3, 1);
Grid.SetColumn(txt3, 1);

// Add the fourth text cell to the Grid
TextBlock txt4 = new TextBlock();
txt4.Text = "Quarter 3";
txt4.FontSize = 12;
txt4.FontWeight = FontWeights.Bold;
Grid.SetRow(txt4, 1);
Grid.SetColumn(txt4, 2);

// Add the sixth text cell to the Grid
TextBlock txt5 = new TextBlock();
Double db1 = new Double();
db1 = 50000;
txt5.Text = db1.ToString();
Grid.SetRow(txt5, 2);
Grid.SetColumn(txt5, 0);

// Add the seventh text cell to the Grid
TextBlock txt6 = new TextBlock();
Double db2 = new Double();
db2 = 100000;
txt6.Text = db2.ToString();
Grid.SetRow(txt6, 2);
Grid.SetColumn(txt6, 1);

// Add the final text cell to the Grid
TextBlock txt7 = new TextBlock();
Double db3 = new Double();
db3 = 150000;
txt7.Text = db3.ToString();
Grid.SetRow(txt7, 2);
Grid.SetColumn(txt7, 2);

// Total all Data and Span Three Columns
TextBlock txt8 = new TextBlock();
txt8.FontSize = 16;
txt8.FontWeight = FontWeights.Bold;
txt8.Text = "Total Units: " + (db1 + db2 + db3).ToString();
Grid.SetRow(txt8, 3);
Grid.SetColumnSpan(txt8, 3);

// Add the TextBlock elements to the Grid Children collection
myGrid.Children.Add(txt1);
myGrid.Children.Add(txt2);
myGrid.Children.Add(txt3);
myGrid.Children.Add(txt4);
myGrid.Children.Add(txt5);
myGrid.Children.Add(txt6);
myGrid.Children.Add(txt7);
myGrid.Children.Add(txt8);

// Add the Grid as the Content of the Parent Window Object
mainWindow.Content = myGrid;
mainWindow.Show ();



--------------------编程问答-------------------- GRID好像没办法显示列名哦?!
GRIDVIEW可以通过XAML或者.CS文件创建的,控件箱里是没有的,不过GRIDLINE,居中等以前在WINFORM里面很简单可以实现的功能,现在看了很多资料都不知道怎么解决 --------------------编程问答-------------------- 哦。分页是怎么回事?我没用过winform的gridview。。。不太清楚。还问了个TAG。。。

从FrameworkElement继承都有这个属性。。。Grid类也有这个依赖属性。。跟winform差不多 --------------------编程问答-------------------- GridView myGridView = new GridView();
myGridView.AllowsColumnReorder = true; 
myGridView.ColumnHeaderToolTip = "Employee Information";

GridViewColumn gvc1 = new GridViewColumn();
gvc1.DisplayMemberBinding = new Binding("FirstName");
gvc1.Header = "FirstName";
gvc1.Width = 100;
myGridView.Columns.Add(gvc1);
GridViewColumn gvc2 = new GridViewColumn();
gvc2.DisplayMemberBinding = new Binding("LastName");
gvc2.Header = "Last Name";
gvc2.Width = 100;
myGridView.Columns.Add(gvc2);
GridViewColumn gvc3 = new GridViewColumn();
gvc3.DisplayMemberBinding = new Binding("EmployeeNumber");
gvc3.Header = "Employee No.";
gvc3.Width = 100;
myGridView.Columns.Add(gvc3);

--------------------编程问答-------------------- 没用过gridview唉。。。。

我一直用ListView


<Style TargetType="{x:Type ListViewItem}">

<Setter Property="HorizontalContentAlignment" Value="Stretch"></Setter>

</Style>

<DataTemplate x:Key="dt1">

<TextBlock TextAlignment="Center" Text="{Binding Path=xxx}"></TextBlock>

</DataTemplate>
--------------------编程问答-------------------- 上面的代码我已经知道了,所以我提到的个问题还是很茫然啊,另外我GRIDVIEW没看到TAG属性,GRID有,不过显示数据这个控件不适合啊 --------------------编程问答-------------------- [size=24px][/WPFsize] --------------------编程问答-------------------- <ListView Name="listViewAuthenticate" Margin="8" Height="180" ItemsSource="{Binding}" Foreground="Black" SelectionMode="Single" HorizontalContentAlignment="Center">
            <ListView.View>
                <GridView x:Name="gridViewAu" AllowsColumnReorder="true" >
                   
                    <GridViewColumn Width="200">
                        <GridViewColumnHeader HorizontalContentAlignment="Left">Authenticated Pad</GridViewColumnHeader>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text= "{Binding Pad}"  Width="200" TextAlignment="Center" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Width="140">
                        <GridViewColumnHeader HorizontalContentAlignment="Left">Device ID</GridViewColumnHeader>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <TextBlock Text= "{Binding ID}" Width="140" TextAlignment="Center" />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>

                </GridView>
            </ListView.View>
        </ListView>
//GridViewColumnHeader HorizontalContentAlignment= 设置header的排列方式
//<TextBlock 中的TextAlignment=设置内容的排列方式 --------------------编程问答-------------------- 楼上 Foreground 是显示边框的。。。。
VerticalAlignment 控制垂直布局 HorizontalAlignment控制水平布局

关注楼主第二个问题 --------------------编程问答-------------------- LZ第四个问题可以使用
        <Style TargetType="ListViewItem">
            <EventSetter Event="MouseDoubleClick" Handler="ListViewItem_MouseDoubleClick"/>
        </Style>
添加行级触发事件 在事件中再获取对象
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,