{"rsdb":{"rid":"239386","subhead":"","postdate":"0","aid":"164994","fid":"106","uid":"1","topic":"1","content":"
\n

\u6700\u8fd1\u505a\u4e2a\u9879\u76ee\uff0c\u9700\u8981\u5bfc\u51faDataGrid\u663e\u793a\u7684\u6570\u636e\uff0c\u4e2d\u95f4\u9047\u5230\u4e86\u4e0d\u5c11\u7684\u5751\uff0c\u5728\u6b64\u7eaa\u5f55\u4e00\u4e0b\uff0c\u65b9\u4fbf\u4ee5\u540e\u67e5\u770b\uff0c\u4e5f\u5e0c\u671b\u80fd\u7ed9\u7528\u5230\u7684\u4eba\uff0c\u4e00\u70b9\u5e2e\u52a9\u3002<\/p> \n

\u5bfc\u51faDataGrid\u663e\u793a\u7684\u6570\u636e\uff0c\u5e76\u4e0d\u662f\u5bfc\u51faDataGrid\u7684ItemsSource\uff0c\u8fd9\u4e24\u8005\u662f\u6709\u533a\u522b\u7684\uff0c\u8fd9\u91cc\u7eaa\u5f55\u7684\u662f\u5bfc\u51faDataGrid\u7684\u663e\u793a\u6570\u636e\uff0c\u4e5f\u5c31\u662f\u6240\u89c1\u5373\u6240\u5f97\u7684\u4e1c\u897f\u3002<\/p> \n

\u4e3e\u4e2a\u4f8b\u5b50\uff1a<\/p> \n

\u6211\u8fd9\u91cc\u6709\u4e2a\u4e00\u4e2aPeople\u7684\u5b9e\u4f53\u7c7b\uff0c\u5b83\u5305\u542b\u4e866\u4e2a\u5b57\u6bb5\uff0c\u5982\u4e0b<\/p> \n

\n
public<\/span> class<\/span> People\r\n{\r\n    <\/span>public<\/span> string<\/span> Name { get<\/span>; set<\/span>; }\r\n    <\/span>public<\/span> int<\/span> Age { get<\/span>; set<\/span>; }\r\n    <\/span>public<\/span> int<\/span> Sex { get<\/span>; set<\/span>; }\r\n    <\/span>public<\/span> string<\/span> ClassName { get<\/span>; set<\/span>; }\r\n    <\/span>public<\/span> string<\/span> GradeName { get<\/span>; set<\/span>; }\r\n    <\/span>public<\/span> string<\/span> SchoolName { get<\/span>; set<\/span>; }\r\n}<\/span><\/pre> \n <\/div> \n 

\u7136\u800c\uff0c\u5c06List<People>\u7684\u96c6\u5408\u7ed9DataGrid\u7684ItemsSource\u8fdb\u884c\u8d4b\u503c\uff0c\u4f46\u662f\u6211\u9875\u9762\uff0c\u663e\u793a\u7684\u662f5\u4e2a\u5b57\u6bb5\uff0c\u751a\u81f3\u8fd8\u6709\u4e00\u4e2a\u8f6c\u6362\u5668\u7684\u4f7f\u7528<\/span><\/p> \n

\n
<<\/span>DataGrid <\/span>x:Name<\/span>="dg_x"<\/span> CanUserAddRows<\/span>="False"<\/span> AutoGenerateColumns<\/span>="False"<\/span>><\/span>\r\n  <<\/span>DataGrid.Columns<\/span>><\/span>\r\n    <<\/span>DataGridTextColumn <\/span>Header<\/span>="\u59d3\u540d"<\/span> Binding<\/span>="<\/span>{Binding Name}<\/span>"<\/span> Width<\/span>="*"<\/span> \/><\/span>\r\n    <<\/span>DataGridTextColumn <\/span>Header<\/span>="\u5e74\u9f84"<\/span> Binding<\/span>="<\/span>{Binding Age}<\/span>"<\/span> Width<\/span>="*"<\/span> \/><\/span>\r\n    <<\/span>DataGridTextColumn <\/span>Header<\/span>="\u6027\u522b"<\/span> Binding<\/span>="<\/span>{Binding Sex,Converter={StaticResource sexcov}}<\/span>"<\/span> Width<\/span>="*"<\/span> \/><\/span>\r\n    <<\/span>DataGridTextColumn <\/span>Header<\/span>="\u5e74\u7ea7"<\/span> Binding<\/span>="<\/span>{Binding GradeName}<\/span>"<\/span> Width<\/span>="*"<\/span> \/><\/span>\r\n    <<\/span>DataGridTextColumn <\/span>Header<\/span>="\u5b66\u6821"<\/span> Binding<\/span>="<\/span>{Binding SchoolName}<\/span>"<\/span> Width<\/span>="*"<\/span> \/><\/span>\r\n  <\/<\/span>DataGrid.Columns<\/span>><\/span>\r\n<\/<\/span>DataGrid<\/span>><\/span><\/pre> \n <\/div> \n 

\"\"<\/p> \n

\u5bfc\u51fa\u7684\u6548\u679c\u5c31\u662fDataGrid\u4e0a\u5c55\u793a\u7684\u6570\u636e\uff0c\u52a0\u4e86\u5c11\u8bb8\u7684\u6837\u5f0f<\/p> \n

\"\"<\/p> \n

\u63a5\u4e0b\u6765\uff0c\u6211\u4eec\u4ecb\u7ecd\u4e0b\u6211\u5728\u5199\u4ee3\u7801\u8fc7\u7a0b\u4e2d\u9047\u5230\u7684\u4e24\u4e2a\u5751<\/p> \n

\u4e00\u3001\u4ee3\u7801\u987a\u5e8f\u95ee\u9898<\/p> \n

\u505a\u5230\u4e0a\u9762\u7684\u5185\u5bb9\u5927\u81f4\u9700\u8981\u505a\u4e24\u4e2a\u5de5\u4f5c\uff0c\u7b2c\u4e00\u4e2a\u5c31\u662f\u8981\u53d6\u5f97\u5230DataGrid\u7684Cell\u7684\u503c\uff0c\u57fa\u672c\u4e0a\u767e\u5ea6\u4e00\u4e0b\uff0c\u5c31\u4f1a\u770b\u5230\u4e00\u4e2a\u65b9\u6cd5\uff0c\u597d\u591a\u7684\u535a\u5ba2\u90fd\u6709\uff0c\u5982\u4e0b<\/p> \n

http:\/\/www.cnblogs.com\/qq247039968\/p\/4066058.html<\/a><\/p> \n

\u8fd9\u4e2a\u65b9\u6cd5\u672c\u8eab\u662f\u6ca1\u5565\u95ee\u9898\uff0c\u4f46\u662f\uff0c\u5f53DataGrid\u6709\u6eda\u52a8\u6761\u7684\u65f6\u5019\uff0c\u4e5f\u5c31\u662fDataGrid\u7684Row\u6ca1\u6709\u5b8c\u5168\u6e32\u67d3\u5b8c\u7684\u60c5\u51b5\u5c31\u6709\u95ee\u9898\u4e86\u3002<\/p> \n

\u5047\u8bbe\uff0c\u6211\u73b0\u5728\u670930\u6761\u6570\u636e\uff0c\u4f46\u662f\uff0c\u6211\u6ca1\u6709\u62d6\u52a8\u8fc7\u6eda\u52a8\u6761\uff0c\u76f4\u63a5\u70b9\u5bfc\u51fa\u7684\u8bdd\uff0c\u4f1a\u629b\u51fa\u5982\u4e0b\u7684\u5f02\u5e38\uff1a<\/p> \n

\"\"<\/p> \n

\u770b\u4e86\u4e0b\u4ee3\u7801\uff0c\u662f\u56e0\u4e3apresenter\u8fd9\u662fNull\uff0c\u7ee7\u7eed\u6253\u65ad\u70b9\u8ddf\u8e2a\uff0c\u53d1\u73b0\u6b64\u5904numVisuals\u5f97\u5230\u7684\u503c\u662f0\uff0c\u800c\u4e0d\u662f1\uff0c\u4e5f\u5c31\u662f\u8bf4\u6ca1\u6709\u83b7\u53d6\u5230\u5185\u5bb9\uff0c\u6240\u4ee5\u8fd4\u56de\u7684Null\u3002<\/p> \n

\"\"<\/p> \n

\u51fa\u73b0\u4ee5\u4e0a\u95ee\u9898\u7684\u539f\u56e0\uff0c\u5728\u4e8e\uff0c\u4ee5\u4e0b\u4ee3\u7801\u7684\u4e00\u4e2a\u987a\u5e8f\u95ee\u9898<\/p> \n

\"\"<\/p> \n

\u5927\u5bb6\u90fd\u77e5\u9053UpdateLayout\u51fd\u6570\u662f\u66f4\u65b0\u5e03\u5c40\u7684\u610f\u601d\uff0c\u8fd9\u4e24\u6bb5\u4ee3\u7801\uff0c\u662f\u5148\u66f4\u65b0\u4e86\u5e03\u5c40\uff0c\u7136\u540e\uff0c\u6eda\u52a8\u5230rowIndex\u7684\u4f4d\u7f6e\uff0c\u6240\u4ee5\uff0c\u4f9d\u7136\u6ca1\u6709\u6e32\u67d3\u6210\u529f\u3002<\/p> \n

\u6b63\u786e\u7684\u5199\u6cd5\u662f\u5c06\u4e24\u53e5\u7684\u987a\u5e8f\u6362\u4e00\u4e0b\u4f4d\u7f6e\uff0c\u5148\u6eda\u52a8\uff0c\u518d\u66f4\u65b0\uff0c\u5c31\u4e0d\u4f1a\u51fa\u73b0\u95ee\u9898\u4e86\u3002<\/p> \n

\n \"\"\n \"\" \n
\n
public<\/span> static<\/span> class<\/span> DataGridPlus\r\n{\r\n    <\/span>\/\/\/<\/span> <summary><\/span>\r\n    \/\/\/<\/span> \u83b7\u53d6DataGrid\u7684\u884c\r\n    <\/span>\/\/\/<\/span> <\/summary><\/span>\r\n    \/\/\/<\/span> <param name="dataGrid"><\/span>DataGrid\u63a7\u4ef6<\/span><\/param><\/span>\r\n    \/\/\/<\/span> <param name="rowIndex"><\/span>DataGrid\u884c\u53f7<\/span><\/param><\/span>\r\n    \/\/\/<\/span> <returns><\/span>\u6307\u5b9a\u7684\u884c\u53f7<\/span><\/returns><\/span>\r\n    public<\/span> static<\/span> DataGridRow GetRow(this<\/span> DataGrid dataGrid, int<\/span> rowIndex)\r\n    {\r\n\r\n        DataGridRow rowContainer <\/span>= (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);\r\n        <\/span>if<\/span> (rowContainer == null<\/span>)\r\n        {\r\n            dataGrid.ScrollIntoView(dataGrid.Items[rowIndex]);\r\n            dataGrid.UpdateLayout();\r\n            rowContainer <\/span>= (DataGridRow)dataGrid.ItemContainerGenerator.ContainerFromIndex(rowIndex);\r\n        }\r\n        <\/span>return<\/span> rowContainer;\r\n    }\r\n    <\/span>\/\/\/<\/span> <summary><\/span>\r\n    \/\/\/<\/span> \u83b7\u53d6\u7236\u53ef\u89c6\u5bf9\u8c61\u4e2d\u7b2c\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u5b50\u53ef\u89c6\u5bf9\u8c61\r\n    <\/span>\/\/\/<\/span> <\/summary><\/span>\r\n    \/\/\/<\/span> <typeparam name="T"><\/span>\u53ef\u89c6\u5bf9\u8c61\u7c7b\u578b<\/span><\/typeparam><\/span>\r\n    \/\/\/<\/span> <param name="parent"><\/span>\u7236\u53ef\u89c6\u5bf9\u8c61<\/span><\/param><\/span>\r\n    \/\/\/<\/span> <returns><\/span>\u7b2c\u4e00\u4e2a\u6307\u5b9a\u7c7b\u578b\u7684\u5b50\u53ef\u89c6\u5bf9\u8c61<\/span><\/returns><\/span>\r\n    public<\/span> static<\/span> T GetVisualChild<T>(Visual parent) where<\/span> T : Visual\r\n    {\r\n        T child <\/span>= default<\/span>(T);\r\n\r\n        <\/span>int<\/span> numVisuals = VisualTreeHelper.GetChildrenCount(parent);\r\n        <\/span>for<\/span> (int<\/span> i = 0<\/span>; i < numVisuals; i++)\r\n        {\r\n            Visual v <\/span>= (Visual)VisualTreeHelper.GetChild(parent, i);\r\n            child <\/span>= v as<\/span> T;\r\n            <\/span>if<\/span> (child == null<\/span>)\r\n            {\r\n                child <\/span>= GetVisualChild<T>(v);\r\n            }\r\n            <\/span>if<\/span> (child != null<\/span>)\r\n            {\r\n                <\/span>break<\/span>;\r\n            }\r\n        }\r\n        <\/span>return<\/span> child;\r\n    }\r\n    <\/span>\/\/\/<\/span> <summary><\/span>\r\n    \/\/","orderid":"0","title":"NPOI\u5bfc\u51faWPF DataGrid\u63a7\u4ef6\u663e\u793a\u6570\u636e(\u4e00)","smalltitle":"","mid":"0","fname":".NET","special_id":"0","bak_id":"0","info":"0","hits":"8854","pages":"2","comments":"0","posttime":"2017-10-16 18:19:52","list":"1508149192","username":"admin","author":"","copyfrom":"","copyfromurl":"","titlecolor":"","fonttype":"0","titleicon":"0","picurl":"http:\/\/images2017.cnblogs.com\/blog\/609679\/201710\/609679-20171014140309465-2111616328.png","ispic":"1","yz":"1","yzer":"","yztime":"0","levels":"0","levelstime":"0","keywords":"NPOI<\/A> \u5bfc\u51fa<\/A> WPF<\/A> DataGrid<\/A> \u63a7\u4ef6<\/A> \u663e\u793a<\/A> \u6570\u636e<\/A>","jumpurl":"","iframeurl":"","style":"","template":"a:3:{s:4:\"head\";s:0:\"\";s:4:\"foot\";s:0:\"\";s:8:\"bencandy\";s:0:\"\";}","target":"0","ip":"113.108.110.181","lastfid":"0","money":"0","buyuser":"","passwd":"","allowdown":"","allowview":"","editer":"","edittime":"0","begintime":"0","endtime":"0","description":"NPOI\u5bfc\u51faWPF DataGrid\u63a7\u4ef6\u663e\u793a\u6570\u636e","lastview":"1714077099","digg_num":"6016","digg_time":"0","forbidcomment":"0","ifvote":"0","heart":"","htmlname":"","city_id":"0"},"page":"1"}