日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Silverlight数据绑定之DataGrid

發布時間:2024/4/14 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Silverlight数据绑定之DataGrid 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

Silverlight數據綁定之DataGrid

時間:2011-08-03 01:59來源:網易博客?作者:Wilson.?點擊:次 注:所有代碼以C#為例 DataGrid綁定的數據對象: 1、DataGrid的ItemsSource數據必須是對象List 2、DataGrid Column的Binding必須是對象的屬性 一、最基本的DataGrid綁定 1、前臺 sdk:DataGridAutoGenerateColumns= True Height= 238 HorizontalAlignment= Left Margin= 170,12,0,0 Name= dataGridTest VerticalAlignment=

  注:所有代碼以C#為例

  DataGrid綁定的數據對象:

  1、DataGrid的ItemsSource數據必須是對象List

  2、DataGrid Column的Binding必須是對象的屬性

  一、最基本的DataGrid綁定

  1、前臺

<sdk:DataGrid?AutoGenerateColumns="True"Height="238"HorizontalAlignment="Left"Margin="170,12,0,0"
Name="dataGridTest"VerticalAlignment="Top"Width="218"/>

  2、后臺:

//定義類

????????public?class?ContentData

????????{

????????????public?string?SCHOOLID?{?get;?set;?}

????????????public?string?NAME?{?get;?set;?}

????????????public?string?SEX?{?get;?set;?}

????????}

//實例化對象List

????????????List<ContentData>?studentContentDataList?=?new?List<ContentData>();

????????????for?(int?i?=?0;?i?<?10;?i++)

????????????{

????????????????studentContentDataList.Add(new?ContentData()?{?

????????????????????SCHOOLID="201104"+i.ToString(),

????????????????????NAME="學生"+i.ToString(),

????????????????????SEX=(i<5)?"男D":"女?"

????????????????});

????????????}

//綁定

dataGridTest.ItemsSource?=?studentContentDataList;

?

  上面示例代碼的結果如下:

  

?

  二、在ArcGIS中,DataGrid可以綁定featureset。

  可以采用將數據動態寫入自定義的featureset,然后綁定DataGrid,可實現DataGrid列數動態生成,避免采用上面類、對象List中屬性數寫死的缺點。

  代碼如下:

IList<Graphic>?statisticFs?=?new?List<Graphic>();??

for(int?i=0;i<10;i++)?????????//i為記錄數

{

statisticFs.Add(new?Graphic());

?????????for?(int?j?=?0;?j?<?contentList.Count;?j++)?????//j為屬性數(列數)

?????????{

?????????statisticFs[i].Attributes.Add(contentList[j].NAME,?tempTotalList[j]);

?????????}

}

????//綁定

????dataGridTest.ItemsSource?=?statisticFs;

????dataGridTest.Columns.Clear();

????for?(int?i?=?0;?i?<?contentList.count;?i++)

????{

????????DataGridTextColumn?column?=?new?DataGridTextColumn();

????????column.Header?=?contentList[i].ALIAS;

????????column.Binding?=?new?System.Windows.Data.Binding("Attributes["?+?contentList[i].NAME?+?"]");

????????StatisticResult.Columns.Add(column);

?????}

其中:?List<ContentData>?contentList?=?new?List<ContentData>();??

????????public?class?ContentData

????????{

????????????public?string?NAME?{?get;?set;?}

????????????public?string?ALIAS?{?get;?set;?}

????????}

?

  三、靜態綁定

  DataGrid 的三種列:DataGridTextColumn、DataGridTemplateColumn、DataGridCheckBoxColumn

<DataGrid?Name="dataGridColorPreview"AutoGenerateColumns="False"Height="221"HorizontalAlignment="Left"
Margin="14,169,0,0"VerticalAlignment="Top"Width="304">

????<DataGrid.Columns>

????????<DataGridTextColumn?Header="編號"Binding="{Binding?customId}"></DataGridTextColumn>

????????<DataGridTemplateColumn?Header="顏色">

????????????<DataGridTemplateColumn.CellTemplate>

????????????????<DataTemplate>

????????????????????<Rectangle?Width="100"Height="20"Fill="{Binding?colorStr}"/>

????????????????</DataTemplate>

????????????</DataGridTemplateColumn.CellTemplate>

????????</DataGridTemplateColumn>

????????<DataGridTextColumn?Header="種類(范圍)"Binding="{Binding?range}"></DataGridTextColumn>

????</DataGrid.Columns>

</DataGrid>???

  四、動態綁定:XamlReader方法

System.Text.StringBuilder?sb?=?new?System.Text.StringBuilder();

sb.Append("<Grid?xmlns='http://schemas.microsoft.com/winfx/2006/xaml/

presentation'?xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'??"+????????????"mlns:data='clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Data'?"?+

"???xmlns:mc='http://schemas.openxmlformats.org/markup-compatibility/2006'?");

sb.Append("x:Name='tempGrid'?>??");

sb.Append("<data:DataGrid?x:Name='grid1'?Margin='1,1,1,1'?

AutoGenerateColumns='False'>");

sb.Append("<data:DataGrid.Columns>");

sb.Append("?<data:DataGridTextColumn?Width='160'?Header='"?+?m_FieldName?+?"'?Binding='{Binding?Attributes["?+?m_FieldsCNEN[m_FieldName]?+?"]}'?/>");

sb.Append("?</data:DataGrid.Columns>");

sb.Append("</data:DataGrid>");

sb.Append("??</Grid>??");

Grid?tempgrid?=?System.Windows.Markup.XamlReader.Load(sb.ToString())?as?Grid;

?又如:

using?System.Windows.Data;
using?System.Windows.Markup;
using?System.Text;

...

DataGridTemplateColumn?templateColumn?=?new?DataGridTemplateColumn();
templateColumn.Header?=?"Birthday";
StringBuilder?CellTemp?=?new?StringBuilder();
CellTemp.Append("<DataTemplate?");
CellTemp.Append("xmlns='http://schemas.microsoft.com/client/2007'?");
CellTemp.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'?");
//"YourNamespace"?and?"YourAssembly"?確保正確
CellTemp.Append("xmlns:local?=?'clr-namespace:YourNamespace");
CellTemp.Append(";assembly=YourAssembly'>");
CellTemp.Append("<Grid>");
CellTemp.Append("<Grid.Resources>");
CellTemp.Append("<local:DateTimeConverter?x:Key='DateConverter'?/>");
CellTemp.Append("</Grid.Resources>");
CellTemp.Append("<TextBlock?");
CellTemp.Append("Text?=?'{Binding?Birthday,?");
CellTemp.Append("Converter={StaticResource?DateConverter}}'?");
CellTemp.Append("FontFamily='Trebuchet?MS'?FontSize='11'?");
CellTemp.Append("Margin='5,4,5,4'/>");
CellTemp.Append("</Grid>");
CellTemp.Append("</DataTemplate>");
StringBuilder?CellETemp?=?new?StringBuilder();
CellETemp.Append("<DataTemplate?");
CellETemp.Append("xmlns='http://schemas.microsoft.com/client/2007'?");
CellETemp.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml'>");
CellETemp.Append("<DatePicker?");
CellETemp.Append("SelectedDate='{Binding?Birthday,?Mode=TwoWay}'?/>");
CellETemp.Append("</DataTemplate>");
templateColumn.CellTemplate?=
(DataTemplate)XamlReader.Load(CellTemp.ToString());
templateColumn.CellEditingTemplate?=
(DataTemplate)XamlReader.Load(CellETemp.ToString());
targetDataGrid.Columns.Add(templateColumn);

  本文來自Wilson的博客,原文地址:http://blog.163.com/zwx_gis/blog/static/32434435201132382957968/

轉載于:https://www.cnblogs.com/meimao5211/p/3413268.html

總結

以上是生活随笔為你收集整理的Silverlight数据绑定之DataGrid的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。