Accessing and Mondifying DataTemplate Element Runtime for CellTemplate<p align=left><font face=Arial size=2>Dear all,</font></p> <p align=left> </p> <p align=left>I have created one Datatemplate which i am  assigning to Celltemplate of a gridviewCollumn.</p> <p align=left>Can i access the elements within DataTemplate at runtime in Code ?</p> <p align=left> </p> <p align=left>If yes then how ?</p> <p align=left> </p> <p align=left>Thanks !</p>© 2009 Microsoft Corporation. All rights reserved.Wed, 29 Jul 2009 14:20:15 Z0b7e4575-39d4-4e35-a3c5-bda4458fa11ehttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#0b7e4575-39d4-4e35-a3c5-bda4458fa11ehttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#0b7e4575-39d4-4e35-a3c5-bda4458fa11eMann._http://social.msdn.microsoft.com/Profile/en-US/?user=Mann._Accessing and Mondifying DataTemplate Element Runtime for CellTemplate<p align=left><font face=Arial size=2>Dear all,</font></p> <p align=left> </p> <p align=left>I have created one Datatemplate which i am  assigning to Celltemplate of a gridviewCollumn.</p> <p align=left>Can i access the elements within DataTemplate at runtime in Code ?</p> <p align=left> </p> <p align=left>If yes then how ?</p> <p align=left> </p> <p align=left>Thanks !</p>Mon, 31 Dec 2007 08:47:23 Z2008-01-03T07:03:15Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#f133826f-4762-40fb-813d-efbeae978e27http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#f133826f-4762-40fb-813d-efbeae978e27Marco Zhouhttp://social.msdn.microsoft.com/Profile/en-US/?user=Marco%20ZhouAccessing and Mondifying DataTemplate Element Runtime for CellTemplate<font style="font-family:Verdana" size=2>I've quickly mocked up a helper class which can do the trick:<br></font><pre class=code style="font-family:Verdana"><font size=2><span style="color:blue">using </span>System;<br><span style="color:blue">using </span>System.Windows;<br><span style="color:blue">using </span>System.Windows.Media;<br><span style="color:blue">using </span>System.Windows.Controls;<br><br><span style="color:blue">namespace </span>Sheva.Windows.Component<br>{<br> <span style="color:blue">public static class </span><span style="color:rgb(43,145,175)">ListViewHelper<br> </span>{<br> <span style="color:blue">public static </span><span style="color:rgb(43,145,175)">FrameworkElement </span>GetElementFromCellTemplate(<span style="color:rgb(43,145,175)">ListView </span>listView, <span style="color:rgb(43,145,175)">Int32 </span>column, <span style="color:rgb(43,145,175)">Int32 </span>row, <span style="color:rgb(43,145,175)">String </span>name)<br> {<br> <span style="color:blue">if </span>(row &gt;= listView.Items.Count || row &lt; 0)<br> {<br> <span style="color:blue">throw new </span><span style="color:rgb(43,145,175)">ArgumentOutOfRangeException</span>(<span style="color:rgb(163,21,21)">&quot;row&quot;</span>);<br> }<br><br> <span style="color:rgb(43,145,175)">GridView </span>gridView = listView.View <span style="color:blue">as </span><span style="color:rgb(43,145,175)">GridView</span>;<br> <span style="color:blue">if </span>(gridView == <span style="color:blue">null</span>)<br> {<br> <span style="color:blue">return null</span>;<br> }<br><br> <span style="color:blue">if </span>(column &gt;= gridView.Columns.Count || column &lt; 0)<br> {<br> <span style="color:blue">throw new </span><span style="color:rgb(43,145,175)">ArgumentOutOfRangeException</span>(<span style="color:rgb(163,21,21)">&quot;column&quot;</span>);<br> }<br><br> <span style="color:rgb(43,145,175)">ListViewItem </span>item = listView.ItemContainerGenerator.ContainerFromItem(listView.Items[row]) <span style="color:blue">as </span><span style="color:rgb(43,145,175)">ListViewItem</span>;<br> <span style="color:blue">if </span>(item != <span style="color:blue">null</span>)<br> {<br> <span style="color:rgb(43,145,175)">GridViewRowPresenter </span>rowPresenter = GetFrameworkElementByName&lt;<span style="color:rgb(43,145,175)">GridViewRowPresenter</span>&gt;(item);<br> <span style="color:blue">if </span>(rowPresenter != <span style="color:blue">null</span>)<br> {<br> <span style="color:rgb(43,145,175)">ContentPresenter </span>templatedParent = <span style="color:rgb(43,145,175)">VisualTreeHelper</span>.GetChild(rowPresenter, column) <span style="color:blue">as </span><span style="color:rgb(43,145,175)">ContentPresenter</span>;<br> <span style="color:rgb(43,145,175)">DataTemplate </span>dataTemplate = gridView.Columns[column].CellTemplate;<br> <span style="color:blue">if </span>(dataTemplate != <span style="color:blue">null </span>&amp;&amp; templatedParent != <span style="color:blue">null</span>)<br> {<br> <span style="color:blue">return </span>dataTemplate.FindName(name, templatedParent) <span style="color:blue">as </span><span style="color:rgb(43,145,175)">FrameworkElement</span>;<br> }<br> }<br> }<br><br> <span style="color:blue">return null</span>;<br> }<br><br> <span style="color:blue">private static </span>T GetFrameworkElementByName&lt;T&gt;(<span style="color:rgb(43,145,175)">FrameworkElement </span>referenceElement) <span style="color:blue">where </span>T : <span style="color:rgb(43,145,175)">FrameworkElement<br> </span>{<br> <span style="color:rgb(43,145,175)">FrameworkElement </span>child = <span style="color:blue">null</span>;<br> <span style="color:blue">for </span>(<span style="color:rgb(43,145,175)">Int32 </span>i = 0; i &lt; <span style="color:rgb(43,145,175)">VisualTreeHelper</span>.GetChildrenCount(referenceElement); i++)<br> {<br> child = <span style="color:rgb(43,145,175)">VisualTreeHelper</span>.GetChild(referenceElement, i) <span style="color:blue">as </span><span style="color:rgb(43,145,175)">FrameworkElement</span>;<br> System.Diagnostics.<span style="color:rgb(43,145,175)">Debug</span>.WriteLine(child);<br> <span style="color:blue">if </span>(child != <span style="color:blue">null </span>&amp;&amp; child.GetType() == <span style="color:blue">typeof</span>(T))<br> {<br> <span style="color:blue">break</span>;<br> }<br> <span style="color:blue">else if </span>(child != <span style="color:blue">null</span>)<br> {<br> child = GetFrameworkElementByName&lt;T&gt;(child);<br> <span style="color:blue">if </span>(child != <span style="color:blue">null </span>&amp;&amp; child.GetType() == <span style="color:blue">typeof</span>(T))<br> {<br> <span style="color:blue">break</span>;<br> }<br> }<br> }<br> <span style="color:blue">return </span>child <span style="color:blue">as </span>T;<br> }<br> }<br>}<br><br>Hope this helps<br></font></pre><font style="font-family:Verdana" size=2><br></font>Wed, 02 Jan 2008 04:14:35 Z2008-01-03T07:03:15Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#75edfc0a-c0c0-4dfa-8984-bd99727362aehttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#75edfc0a-c0c0-4dfa-8984-bd99727362aeMann._http://social.msdn.microsoft.com/Profile/en-US/?user=Mann._Accessing and Mondifying DataTemplate Element Runtime for CellTemplate<p align=left><font face=Arial size=2>Thank you sir ...</font></p> <p align=left> </p> <p align=left>This is really fantastic !!</p> <p align=left>it worked for me..</p> <p align=left> </p> <p align=left>Thank you verymuch . i was struggling a lot for this solution.</p> <p align=left> </p> <p align=left>Thanks!</p> <p align=left> </p> <p align=left>- Regards </p> <p align=left>Mann..</p>Thu, 03 Jan 2008 06:44:35 Z2008-01-03T06:44:35Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#21d4810c-5a56-4586-a7aa-72dd9da0b441http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#21d4810c-5a56-4586-a7aa-72dd9da0b441Mann._http://social.msdn.microsoft.com/Profile/en-US/?user=Mann._Accessing and Mondifying DataTemplate Element Runtime for CellTemplate<p align=left><font face=Arial size=2>Hi Marco,</font></p> <p align=left> </p> <p align=left>Above Code Worked fine for me. But in one sinario it's not satisfying my requirements.</p> <p align=left>I am assigning ItemSource for lstView at runtime. and then assigning CellTemplates to each newly created collumn.</p> <p align=left>Then i am trying to fetch a parent grid from DataTemplat's Element for each cell and assigning DataContext to it.(as per my business object).</p> <p align=left> </p> <p align=left>Now actually this filling of gridview should happen when i change a combobox value at top of my window.</p> <p align=left> </p> <p align=left>So, i am writing whole code in Combobox changed.</p> <p align=left>see below for the imp. statments..</p> <p align=left> </p><font size=2><font size=2> <p>lstDays.ItemsSource = LABRESULTS[currentDeptIndex].Investigations;</p> <p align=left> </p> <p align=left>/* --code for adding Collumns in to ListView goes here .. </p> <p align=left>----- </p> <p align=left>-----</p> <p align=left>--*/</p> <p align=left>then Say for the first Cell in a gridview</p></font></font><font color="#2b91af" size=2></font> <p align=left><font color="#2b91af"></font> </p> <p align=left><font color="#2b91af" size=2>Grid</font><font size=2> currentCellTemplateGridContainer = (</font><font color="#2b91af" size=2>Grid</font><font size=2>)</font><font color="#2b91af" size=2>ListViewHelper</font><font size=2>.GetElementFromCellTemplate(lstViewDays, 0, 0, </font><font color="#a31515" size=2>&quot;grdLabResultDayPresenter&quot;</font><font size=2>);  /* Where <font color="#a31515">grdLabResultDayPresenter is a parent grid in CellTemplate */</font></font></p> <p align=left><font size=2><font color="#a31515"></font></font> </p> <p align=left><font size=2><font color="#a31515">From here </font><font color="#000000">GetElementFromCellTemplate() is called inside that at following statement it returns null in ListViewItem.</font></p></font> <p align=left> </p> <p align=left> <span style="color:rgb(43,145,175)">ListViewItem </span>item = listView.ItemContainerGenerator.ContainerFromItem(listView.Items[row]) <span style="color:blue">as </span><span style="color:rgb(43,145,175)">ListViewItem</span>;</p> <p align=left> </p> <p align=left>I checked for  <font size=2>listView.ItemContainerGenerator.Status . It returns not started..</font></p> <p align=left><font size=2>Also i tried using  listView.ItemContainerGenerator.ContainerFromIndex(0); it also gives the same result.</font></p> <p align=left><font size=2></font> </p> <p align=left><font size=2>The whole idea works only when i write the code for filling listview cells somewhere else and not in a Combobox change event. but my requirement is to refresh the listview based on the value selected in combobox.</p> <p align=left> </p> <p align=left>What can i do for this ? </p> <p align=left> </p> <p align=left>Thanks ! </p> <p align=left>- Manish.</p></font>Mon, 07 Jan 2008 12:21:43 Z2008-01-07T12:21:43Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#80c6df17-8b8f-479e-98ce-681e48c7291ahttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#80c6df17-8b8f-479e-98ce-681e48c7291aMarco Zhouhttp://social.msdn.microsoft.com/Profile/en-US/?user=Marco%20ZhouAccessing and Mondifying DataTemplate Element Runtime for CellTemplate<font style="font-family:Verdana" size=2><span id="_ctl0_MainContent__ctl0_PostForm_ReplyBody"><font color="#2b91af"><span style="color:rgb(0,0,0)">ListViewHelper.GetElementFromCellTemplate() will work correctly if all the containers/ListViewItems have been generated by the underlying ListView's item container generator, so if you want it to work properly for all scenarios, you need to turn off the UI virtualization for ListView, the following code shows how to turn off UI virtualization for ListView:<br></span></font></span></font><pre class=code style="font-family:Verdana"><font size=2><span style="color:blue">&lt;</span><span style="color:rgb(163,21,21)">ListView</span><span style="color:blue">&gt;<br> &lt;</span><span style="color:rgb(163,21,21)">ListView.ItemsPanel</span><span style="color:blue">&gt;<br> &lt;</span><span style="color:rgb(163,21,21)">ItemsPanelTemplate</span><span style="color:blue">&gt;<br> &lt;</span><span style="color:rgb(163,21,21)">StackPanel </span><span style="color:red">IsItemsHost</span><span style="color:blue">=</span>&quot;<span style="color:blue">True</span>&quot;<span style="color:blue">/&gt;<br> &lt;/</span><span style="color:rgb(163,21,21)">ItemsPanelTemplate</span><span style="color:blue">&gt;<br> &lt;/</span><span style="color:rgb(163,21,21)">ListView.ItemsPanel</span><span style="color:blue">&gt;<br>&lt;/</span><span style="color:rgb(163,21,21)">ListView</span><span style="color:blue">&gt;</span></font></pre><font style="font-family:Verdana" size=2>And when you dynamically populating the ListView as you did above, because at that time, the containers/ListViewItems has not been generated, you need to wait until the containers are generated, you can simply hook up to ListView.ItemsContainerGenerator.StatusChanged event, and inside this event, you need to check the </font><font style="font-family:Verdana" size=2>ListView.ItemsContainerGenerator.Status property to see if it's set to GeneratorStatus.ContainersGenerated, if so, you can safely call </font><font style="font-family:Verdana" size=2><span id="_ctl0_MainContent__ctl0_PostForm_ReplyBody"><font color="#2b91af"><span style="color:rgb(0,0,0)">ListViewHelper.GetElementFromCellTemplate() at that time.<br><br>Hope this helps<br></span></font></span></font><font style="font-family:Verdana" size=2><span id="_ctl0_MainContent__ctl0_PostForm_ReplyBody"><font color="#2b91af"><span style="color:rgb(0,0,0)"><br></span></font></span></font>Tue, 08 Jan 2008 04:25:36 Z2008-01-08T04:25:36Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#8bfd8499-368b-4347-af56-4b991c80d99chttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#8bfd8499-368b-4347-af56-4b991c80d99cMann._http://social.msdn.microsoft.com/Profile/en-US/?user=Mann._Accessing and Mondifying DataTemplate Element Runtime for CellTemplate<p>Dear Marco,</p> <p align=left> </p> <p align=left>I struggled a lot with this, but it's not geeting for the senario i mentioned (immediately when  Combobox selection Change).</p> <p align=left> </p> <p align=left>is there any other way to explicitely chage the status of <font face=Verdana>ListView.ItemsContainerGenerator.Status property.</font></p> <p align=left><font face=Verdana>Because, it shows me 'Not Generated' for the senario i had written.</font></p> <p align=left><font face=Verdana></font> </p> <p align=left><font face=Verdana>please, post the solution when you get it.</font></p> <p align=left><font face=Verdana>I am at the bottom of the solution now, only 0.01% far from proposed output.</font></p> <p align=left><font face=Verdana></font> </p> <p align=left><font face=Verdana>Thnaks for ur help.</font></p> <p align=left><font face=Verdana>Regards ,</font></p> <p align=left><font face=Verdana></font> </p> <p align=left><font face=Verdana>-Manish</font></p> <p align=left><font face=Arial size=2></font> </p>Tue, 08 Jan 2008 10:59:42 Z2008-01-08T10:59:42Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#6fb75871-bf30-4721-afa0-3ab6cd5993a5http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#6fb75871-bf30-4721-afa0-3ab6cd5993a5Marco Zhouhttp://social.msdn.microsoft.com/Profile/en-US/?user=Marco%20ZhouAccessing and Mondifying DataTemplate Element Runtime for CellTemplate<font style="font-family:Verdana" size=2> <div class=quote> <table width="85%"> <tbody> <tr> <td class=txt4> <strong><span id="_ctl0_MainContent__ctl0_PostForm_ReplyBody">Manish</span> wrote:</strong></td></tr> <tr> <td class=quoteTable> <table width="100%"> <tbody> <tr> <td class=txt4 valign=top width="100%"><br><span id="_ctl0_MainContent__ctl0_PostForm_ReplyBody">is there any other way to explicitely chage the status of ListView.ItemsContainerGenerator.Status property.</span><br></td></tr></tbody></table></td></tr></tbody></table></div><br><br>As far as I know, there is no explicit way to change the status of item container generator, even if there is a method to do so, it's not a good practice to explicitly manipulate the item container generator.<br><br>The best bet you can do is hook up to the StatusChanged event and wait for the right time to access the named element within cell template as following code shows:<br></font><pre class=code style="font-family:Verdana"><font size=2>lstViewDays.ItemContainerGenerator.StatusChanged += <span style="color:blue">delegate <br></span>{<br> <span style="color:blue">if </span>(lstViewDays.ItemContainerGenerator.Status == <span style="color:rgb(43,145,175)">GeneratorStatus</span>.ContainersGenerated)<br> {<br> <span style="color:rgb(43,145,175)">Grid </span>currentCellTemplateGridContainer = (<span style="color:rgb(43,145,175)">Grid</span>)<span style="color:rgb(43,145,175)">ListViewHelper</span>.GetElementFromCellTemplate(lstViewDays, 0, 0, <span style="color:rgb(163,21,21)">&quot;grdLabResultDayPresenter&quot;</span>); <br> }<br>};<br><br>Hope this helps<br></font></pre><font style="font-family:Verdana" size=2><br></font>Wed, 09 Jan 2008 03:14:29 Z2008-01-09T03:14:29Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#6e68c043-47be-4bf5-b5d9-51e14663f870http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#6e68c043-47be-4bf5-b5d9-51e14663f870Mann._http://social.msdn.microsoft.com/Profile/en-US/?user=Mann._Accessing and Mondifying DataTemplate Element Runtime for CellTemplate<p align=left><font face=Arial size=2></font> </p> <p>Hi Marco,</p> <p align=left> </p> <p align=left>Now i am getting that ItemContainerGenerated status as Generated.</p> <p align=left>As i changed the sequence of statement in which i was assigning DataSource to ListView.</p> <p align=left> </p> <p align=left>Now following line always returns null in rowPresenter for that senario.(Combobox changed)</p> <p align=left> </p><font size=2> <p></font><font color="#2b91af" size=2>GridViewRowPresenter</font><font size=2> rowPresenter = GetFrameworkElementByName&lt;</font><font color="#2b91af" size=2>GridViewRowPresenter</font><font size=2>&gt;(item);</font></p> <p align=left> </p> <p align=left>Here item is also getting initialised which before always was returning null. But   GetFrameworkElementByName&lt;<font color="#2b91af" size=2>GridViewRowPresenter</font><font size=2>&gt;(item); returns Null..</font></p> <p align=left><font size=2></font> </p> <p align=left><font size=2>Can you help me in this ? This is a final stage for solution.</font></p> <p align=left><font size=2></font> </p> <p align=left><font size=2>Thanks !</font></p> <p align=left><font size=2>-Manish</p></font>Wed, 09 Jan 2008 12:53:57 Z2008-01-09T12:53:57Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#6071cd5a-a9c3-4600-af4a-d142b3a5edbahttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#6071cd5a-a9c3-4600-af4a-d142b3a5edbaMarco Zhouhttp://social.msdn.microsoft.com/Profile/en-US/?user=Marco%20ZhouAccessing and Mondifying DataTemplate Element Runtime for CellTemplate<font style="font-family:Verdana" size=2> <div class=quote> <table width="85%"> <tbody> <tr> <td class=txt4> <strong>Manish wrote:</strong></td></tr> <tr> <td class=quoteTable> <table width="100%"> <tbody> <tr> <td class=txt4 valign=top width="100%"><br><span id="_ctl0_MainContent__ctl0_PostForm_ReplyBody">Here item is also getting initialised which before always was returning null. But   GetFrameworkElementByName&lt;<font color="#2b91af">GridViewRowPresenter</font>&gt;(item); returns Null..</span><br></td></tr></tbody></table></td></tr></tbody></table></div><br><br>If I understand you correctly, you mean the container/ListViewItem is initialized, but <span id="_ctl0_MainContent__ctl0_PostForm_ReplyBody">GetFrameworkElementByName() call will return null, if this is the case, you can insert ApplyTemplate() call before </span><span id="_ctl0_MainContent__ctl0_PostForm_ReplyBody">GetFrameworkElementByName() call:<br></span></font><pre class=code style="font-family:Verdana"><font size=2><span style="color:blue;background-color:rgb(255,255,0)">if </span><span style="background-color:rgb(255,255,0)">(!item.IsLoaded)</span><br style="background-color:rgb(255,255,0)"><span style="background-color:rgb(255,255,0)">{</span><br style="background-color:rgb(255,255,0)"><span style="background-color:rgb(255,255,0)"> item.ApplyTemplate();</span><br style="background-color:rgb(255,255,0)"><span style="background-color:rgb(255,255,0)">}<br><br></span><span style="color:rgb(43,145,175)">GridViewRowPresenter </span>rowPresenter = GetFrameworkElementByName&lt;<span style="color:rgb(43,145,175)">GridViewRowPresenter</span>&gt;(item);<br><br>Hope this helps<br></font></pre><font style="font-family:Verdana" size=2><br></font>Thu, 10 Jan 2008 01:39:32 Z2008-01-10T01:39:32Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#2413c377-fbcc-4000-9033-c2c09d34e3a0http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#2413c377-fbcc-4000-9033-c2c09d34e3a0Mann._http://social.msdn.microsoft.com/Profile/en-US/?user=Mann._Accessing and Mondifying DataTemplate Element Runtime for CellTemplate<p align=left><font face=Arial size=2></font> </p> <p>Dear Marco,</p> <p align=left> </p> <p align=left>Finally, I got the solution.</p> <p align=left> </p> <p align=left>Your code helped me a lot to solve this problem. Only for certain senarios i have to change some code at some places.</p> <p align=left>like . control.ApplyTemplate() method i had to call.</p> <p align=left> </p> <p align=left>Thanks yaar !!</p> <p align=left>I am happy now.</p> <p align=left> </p> <p align=left>Regards,</p> <p align=left>-Manish.</p> <p align=left> </p> <p align=left>Find below the updated function.</p> <p align=left> </p><font size=2> <p></font><font color="#0000ff" size=2>public</font><font size=2> </font><font color="#0000ff" size=2>static</font><font size=2> </font><font color="#2b91af" size=2>FrameworkElement</font><font size=2> GetElementFromCellTemplate(</font><font color="#2b91af" size=2>ListView</font><font size=2> listView, </font><font color="#2b91af" size=2>Int32</font><font size=2> column, </font><font color="#2b91af" size=2>Int32</font><font size=2> row, </font><font color="#2b91af" size=2>String</font><font size=2> name) </p> <p>{</p> <p></font><font color="#0000ff" size=2>if</font><font size=2> (row &gt;= listView.Items.Count || row &lt; 0)</p> <p>{</p> <p></font><font color="#0000ff" size=2>throw</font><font size=2> </font><font color="#0000ff" size=2>new</font><font size=2> </font><font color="#2b91af" size=2>ArgumentOutOfRangeException</font><font size=2>(</font><font color="#a31515" size=2>&quot;row&quot;</font><font size=2>);</p> <p>}</p> <p></font><font color="#2b91af" size=2>GridView</font><font size=2> gridView = listView.View </font><font color="#0000ff" size=2>as</font><font size=2> </font><font color="#2b91af" size=2>GridView</font><font size=2>;</p> <p></font><font color="#0000ff" size=2>if</font><font size=2> (gridView == </font><font color="#0000ff" size=2>null</font><font size=2>)</p> <p>{</p> <p></font><font color="#0000ff" size=2>return</font><font size=2> </font><font color="#0000ff" size=2>null</font><font size=2>;</p> <p>}</p> <p></font><font color="#0000ff" size=2>if</font><font size=2> (column &gt;= gridView.Columns.Count || column &lt; 0)</p> <p>{</p> <p></font><font color="#0000ff" size=2>throw</font><font size=2> </font><font color="#0000ff" size=2>new</font><font size=2> </font><font color="#2b91af" size=2>ArgumentOutOfRangeException</font><font size=2>(</font><font color="#a31515" size=2>&quot;column&quot;</font><font size=2>);</p> <p>}</p> <p></p> <p></font><font color="#2b91af" size=2>ListViewItem</font><font size=2> item = listView.ItemContainerGenerator.ContainerFromItem(listView.Items[row]) </font><font color="#0000ff" size=2>as</font><font size=2> </font><font color="#2b91af" size=2>ListViewItem</font><font size=2>;</p> <p></p> <p></font><font color="#0000ff" size=2>if</font><font size=2> (item != </font><font color="#0000ff" size=2>null</font><font size=2>)</p> <p>{</p> <p></font><font color="#0000ff" size=2>if</font><font size=2> (!item.IsLoaded) </p> <p>{</p> <p>item.ApplyTemplate(); </p> <p>}</p> <p></font><font color="#2b91af" size=2>GridViewRowPresenter</font><font size=2> rowPresenter = GetFrameworkElementByName&lt;</font><font color="#2b91af" size=2>GridViewRowPresenter</font><font size=2>&gt;(item);</p> <p></font><font color="#0000ff" size=2>if</font><font size=2> (rowPresenter != </font><font color="#0000ff" size=2>null</font><font size=2>)</p> <p>{</p> <p>rowPresenter.ApplyTemplate();</p> <p></font><font color="#2b91af" size=2>ContentPresenter</font><font size=2> templatedParent = </font><font color="#2b91af" size=2>VisualTreeHelper</font><font size=2>.GetChild(rowPresenter, column) </font><font color="#0000ff" size=2>as</font><font size=2> </font><font color="#2b91af" size=2>ContentPresenter</font><font size=2>;</p> <p></font><font color="#2b91af" size=2>DataTemplate</font><font size=2> dataTemplate = gridView.Columns[column].CellTemplate;</p> <p></font><font color="#0000ff" size=2>if</font><font size=2> (dataTemplate != </font><font color="#0000ff" size=2>null</font><font size=2> &amp;&amp; templatedParent != </font><font color="#0000ff" size=2>null</font><font size=2>)</p> <p>{</p> <p>templatedParent.ApplyTemplate();</p> <p></font><font color="#0000ff" size=2>return</font><font size=2> dataTemplate.FindName(name, templatedParent) </font><font color="#0000ff" size=2>as</font><font size=2> </font><font color="#2b91af" size=2>FrameworkElement</font><font size=2>;</p> <p>}</p> <p>}</p> <p>}</p> <p></p> <p></font><font color="#0000ff" size=2>return</font><font size=2> </font><font color="#0000ff" size=2>null</font><font size=2>;</p> <p></p> <p>}</p></font> <p align=left> </p> <p align=left> </p> <p align=left> </p>Thu, 10 Jan 2008 08:59:55 Z2008-01-10T08:59:55Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#bc8ec6ec-330e-4511-9f14-c06c626f8d55http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#bc8ec6ec-330e-4511-9f14-c06c626f8d55Molon Labehttp://social.msdn.microsoft.com/Profile/en-US/?user=Molon%20LabeAccessing and Mondifying DataTemplate Element Runtime for CellTemplate Here is a version in VB that seems to work. It includes the ApplyTemplate mods.<br><br> <div style="border-right:#7f9db9 1px solid;border-top:#7f9db9 1px solid;font-size:11px;overflow:auto;border-left:#7f9db9 1px solid;line-height:100%! important;border-bottom:#7f9db9 1px solid;font-family:Courier New;background-color:white"> <table style="border-top-width:0px;border-left-width:0px;margin:2px 0px;width:99%;border-bottom:#eee 0px solid;border-collapse:collapse;background-color:#fff;border-right-width:0px" cellspacing=0 cellpadding=0> <colgroup> <col style="padding-left:10px;font-size:11px;border-bottom:#f7f7f7 1px solid;font-family:Courier New;white-space:nowrap"> <tbody> <tr> <td><font style="font-size:11px">    </font><font style="color:blue">Public</font><font style="font-size:11px"> </font><font style="color:blue">NotInheritable</font><font style="font-size:11px"> </font><font style="color:blue">Class</font><font style="font-size:11px"> ListViewHelper  </font></td></tr> <tr> <td style="background-color:#f7f7f7">        </font><font style="color:blue">Public</font><font style="font-size:11px"> </font><font style="color:blue">Shared</font><font style="font-size:11px"> </font><font style="color:blue">Function</font><font style="font-size:11px"> GetElementFromCellTemplate(</font><font style="color:blue">ByVal</font><font style="font-size:11px"> lv </font><font style="color:blue">As</font><font style="font-size:11px"> ListView, _  </font></td></tr> <tr> <td>                                                          </font><font style="color:blue">ByVal</font><font style="font-size:11px"> column </font><font style="color:blue">As</font><font style="font-size:11px"> </font><font style="color:blue">Integer</font><font style="font-size:11px">, _  </font></td></tr> <tr> <td style="background-color:#f7f7f7">                                                          </font><font style="color:blue">ByVal</font><font style="font-size:11px"> row </font><font style="color:blue">As</font><font style="font-size:11px"> </font><font style="color:blue">Integer</font><font style="font-size:11px">, _  </font></td></tr> <tr> <td>                                                          </font><font style="color:blue">ByVal</font><font style="font-size:11px"> name </font><font style="color:blue">As</font><font style="font-size:11px"> </font><font style="color:blue">String</font><font style="font-size:11px">) </font><font style="color:blue">As</font><font style="font-size:11px"> FrameworkElement  </font></td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td>            </font><font style="color:blue">If</font><font style="font-size:11px"> row &gt;= lv.Items.Count </font><font style="color:blue">Or</font><font style="font-size:11px"> row &lt; 0 </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                </font><font style="color:blue">Throw</font><font style="font-size:11px"> </font><font style="color:blue">New</font><font style="font-size:11px"> ArgumentOutOfRangeException(</font><font style="color:blue">&quot;row&quot;</font><font style="font-size:11px">)  </font></td></tr> <tr> <td>            </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">Dim</font><font style="font-size:11px"> gv </font><font style="color:blue">As</font><font style="font-size:11px"> GridView = lv.View  </font></td></tr> <tr> <td> </td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">If</font><font style="font-size:11px"> gv </font><font style="color:blue">Is</font><font style="font-size:11px"> </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                </font><font style="color:blue">Return</font><font style="font-size:11px"> </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td> </td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">If</font><font style="font-size:11px"> column &gt;= gv.Columns.Count </font><font style="color:blue">Or</font><font style="font-size:11px"> column &lt; 0 </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                </font><font style="color:blue">Throw</font><font style="font-size:11px"> </font><font style="color:blue">New</font><font style="font-size:11px"> ArgumentOutOfRangeException(</font><font style="color:blue">&quot;column&quot;</font><font style="font-size:11px">)  </font></td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td> </td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">Dim</font><font style="font-size:11px"> item </font><font style="color:blue">As</font><font style="font-size:11px"> ListViewItem = lv.ItemContainerGenerator.ContainerFromItem(lv.Items(row))  </font></td></tr> <tr> <td> </td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">If</font><font style="font-size:11px"> item IsNot </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                </font><font style="color:blue">If</font><font style="font-size:11px"> </font><font style="color:blue">Not</font><font style="font-size:11px"> item.IsLoaded </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                    item.ApplyTemplate()  </td></tr> <tr> <td>                </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td>                </font><font style="color:blue">Dim</font><font style="font-size:11px"> gvrp </font><font style="color:blue">As</font><font style="font-size:11px"> GridViewRowPresenter = GetFrameworkElementByName(Of GridViewRowPresenter)(item)  </font></td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td>                </font><font style="color:blue">If</font><font style="font-size:11px"> gvrp IsNot </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                    gvrp.ApplyTemplate()  </td></tr> <tr> <td>                    </font><font style="color:blue">Dim</font><font style="font-size:11px"> cp </font><font style="color:blue">As</font><font style="font-size:11px"> ContentPresenter = VisualTreeHelper.GetChild(gvrp, column)  </font></td></tr> <tr> <td style="background-color:#f7f7f7">                    </font><font style="color:blue">Dim</font><font style="font-size:11px"> dt </font><font style="color:blue">As</font><font style="font-size:11px"> DataTemplate = gv.Columns(column).CellTemplate  </font></td></tr> <tr> <td>                    </font><font style="color:blue">If</font><font style="font-size:11px"> dt IsNot </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font><font style="color:blue">And</font><font style="font-size:11px"> cp IsNot </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                        cp.ApplyTemplate()  </td></tr> <tr> <td>                        </font><font style="color:blue">Return</font><font style="font-size:11px"> dt.FindName(name, cp)  </font></td></tr> <tr> <td style="background-color:#f7f7f7">                    </font><font style="color:blue">Else</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                        </font><font style="color:blue">Return</font><font style="font-size:11px"> </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                    </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                </font><font style="color:blue">Else</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                    </font><font style="color:blue">Return</font><font style="font-size:11px"> </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">Else</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                </font><font style="color:blue">Return</font><font style="font-size:11px"> </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td>        </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">Function</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7"> </td></tr> <tr> <td>        </font><font style="color:blue">Public</font><font style="font-size:11px"> </font><font style="color:blue">Shared</font><font style="font-size:11px"> </font><font style="color:blue">Function</font><font style="font-size:11px"> GetFrameworkElementByName(Of T </font><font style="color:blue">As</font><font style="font-size:11px"> FrameworkElement)(</font><font style="color:blue">ByVal</font><font style="font-size:11px"> fe </font><font style="color:blue">As</font><font style="font-size:11px"> FrameworkElement) </font><font style="color:blue">As</font><font style="font-size:11px"> T  </font></td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">Dim</font><font style="font-size:11px"> child </font><font style="color:blue">As</font><font style="font-size:11px"> FrameworkElement = </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font></td></tr> <tr> <td> </td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">For</font><font style="font-size:11px"> i </font><font style="color:blue">As</font><font style="font-size:11px"> </font><font style="color:blue">Integer</font><font style="font-size:11px"> = 0 </font><font style="color:blue">To</font><font style="font-size:11px"> VisualTreeHelper.GetChildrenCount(fe) - 1  </font></td></tr> <tr> <td>                child = </font><font style="color:blue">DirectCast</font><font style="font-size:11px">(VisualTreeHelper.GetChild(fe, i), FrameworkElement)  </font></td></tr> <tr> <td style="background-color:#f7f7f7">                </font><font style="color:green">'System.Diagnostics.Debug.WriteLine(child) </font><font style="font-size:11px"> </font></td></tr> <tr> <td>                </font><font style="color:blue">If</font><font style="font-size:11px"> child IsNot </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font><font style="color:blue">And</font><font style="font-size:11px"> </font><font style="color:blue">TypeOf</font><font style="font-size:11px"> child </font><font style="color:blue">Is</font><font style="font-size:11px"> T </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                    </font><font style="color:blue">Exit</font><font style="font-size:11px"> </font><font style="color:blue">For</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                </font><font style="color:blue">ElseIf</font><font style="font-size:11px"> child IsNot </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                    child = GetFrameworkElementByName(Of T)(child)  </td></tr> <tr> <td>                    </font><font style="color:blue">If</font><font style="font-size:11px"> child IsNot </font><font style="color:blue">Nothing</font><font style="font-size:11px"> </font><font style="color:blue">And</font><font style="font-size:11px"> </font><font style="color:blue">TypeOf</font><font style="font-size:11px"> child </font><font style="color:blue">Is</font><font style="font-size:11px"> T </font><font style="color:blue">Then</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                        </font><font style="color:blue">Exit</font><font style="font-size:11px"> </font><font style="color:blue">For</font><font style="font-size:11px"> </font></td></tr> <tr> <td>                    </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">                </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">If</font><font style="font-size:11px"> </font></td></tr> <tr> <td>            </font><font style="color:blue">Next</font><font style="font-size:11px"> i  </font></td></tr> <tr> <td style="background-color:#f7f7f7">            </font><font style="color:blue">Return</font><font style="font-size:11px"> </font><font style="color:blue">DirectCast</font><font style="font-size:11px">(child, T)  </font></td></tr> <tr> <td>        </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">Function</font><font style="font-size:11px"> </font></td></tr> <tr> <td style="background-color:#f7f7f7">    </font><font style="color:blue">End</font><font style="font-size:11px"> </font><font style="color:blue">Class</font><font style="font-size:11px"> </font></td></tr></tbody></table></div><br><br>Fri, 27 Jun 2008 21:24:36 Z2008-06-27T21:24:36Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#afa69585-8b3f-4640-829e-318616cb35b2http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#afa69585-8b3f-4640-829e-318616cb35b2Hiralhttp://social.msdn.microsoft.com/Profile/en-US/?user=HiralAccessing and Mondifying DataTemplate Element Runtime for CellTemplate Hi,<br><br>I have a combobox in one of the column of grid. I have used CellTemplate for it. Combobox value for each row is different. I am able to bind the combobox properly but unable to retrieve the selected value of combobox. Below is the code I have used. If any solution is available it will be of great help.<br> <p><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">Using </span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">System; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>System.Windows; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>Microsoft.Practices.CompositeUI; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>Microsoft.Practices.CompositeUI.SmartParts; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>Microsoft.Practices.CompositeUI.WPF; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>Microsoft.Practices.ObjectBuilder; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>System.Windows.Media; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>System.Windows.Controls; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>TreeListViewSample.Infrastructure.Interface; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">Using </span>System.Windows.Data; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">Namespace </span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">TreeListViewSample.TreeListViewModule </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span> <span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;summary&gt; </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> Interaction logic for TreeListView.xaml </span></p> <p><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span> <span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;/summary&gt; </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">partial</span> <span style="color:blue">class</span> <span style="color:#2b91af">TreeListView</span> : System.Windows.Controls.<span style="color:#2b91af">UserControl</span>, <span style="color:#2b91af">ITreeListView</span>, <span style="color:#2b91af">IDisposable </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span> <span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;summary&gt; </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> Initialize a new instance of </span><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;see cref=&quot;TreeListView&quot;/&gt;</span><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'">. </span></p> <p><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span> <span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;summary&gt; </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">DataTemplate</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> template; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">FrameworkElementFactory</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> factoryComboBox; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">GridView</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> myGridView; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> TreeListView() </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">InitializeComponent();</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">this</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">.Loaded += <span style="color:blue">new</span> <span style="color:#2b91af">RoutedEventHandler</span>(OnLoad); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span> <span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;summary&gt; </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> Called when WPF has loaded the control and is ready to display it. </span></p> <p><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span> <span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;summary&gt; </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span> <span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;param name=&quot;sender&quot;&gt;</span><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'">Source of the event</span><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;/param&gt; </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">///</span> <span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;param name=&quot;e&quot;&gt;</span><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'">Extra information about the event</span><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'">&lt;/param&gt; </span></p> <p><span style="font-size:10pt;color:gray;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">void</span> OnLoad(<span style="color:blue">object</span> sender, <span style="color:#2b91af">RoutedEventArgs</span> e) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">_presenter.OnViewReady();</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">BindGrid();</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">private</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">void</span> listView1_SelectionChanged(<span style="color:blue">object</span> sender, <span style="color:#2b91af">SelectionChangedEventArgs</span> e) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">int</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> idx=listView1.Items.IndexOf(listView1.SelectedItem); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">  </span></p> <p style="margin:0in 0in 0pt"><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">ComboBox</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> currentCellTemplateGridContainer = (<span style="color:#2b91af">ComboBox</span>)<span style="color:#2b91af">ListViewHelper</span>.GetElementFromCellTemplate(listView1, 3, 1, <span style="color:#a31515">&quot;ResponseAndRating&quot;</span>); <span style="color:green">/* Where </span></p> <p><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> </span><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">static</span> <span style="color:blue">class</span> <span style="color:#2b91af">ListViewHelper</span> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{ </span></p> <p><span style="font-size:9pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> </span></p> <p style="margin:0in 0in 0pt"><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">static</span> <span style="color:#2b91af">FrameworkElement</span> GetElementFromCellTemplate(<span style="color:#2b91af">ListView</span> listView, <span style="color:#2b91af">Int32</span> column, <span style="color:#2b91af">Int32</span> row, <span style="color:#2b91af">String</span> name) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (row &gt;= listView.Items.Count || row &lt; 0) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">throw</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">new</span> <span style="color:#2b91af">ArgumentOutOfRangeException</span>(<span style="color:#a31515">&quot;row&quot;</span>); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">GridView</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> gridView = listView.View <span style="color:blue">as</span> <span style="color:#2b91af">GridView</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (gridView == <span style="color:blue">null</span>) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">return</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">null</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (column &gt;= gridView.Columns.Count || column &lt; 0) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">throw</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">new</span> <span style="color:#2b91af">ArgumentOutOfRangeException</span>(<span style="color:#a31515">&quot;column&quot;</span>); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">ListViewItem</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> item = listView.ItemContainerGenerator.ContainerFromItem(listView.Items[row]) <span style="color:blue">as</span> <span style="color:#2b91af">ListViewItem</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (item != <span style="color:blue">null</span>) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (!item.IsLoaded) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">item.ApplyTemplate();</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">GridViewRowPresenter</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> rowPresenter = GetFrameworkElementByName&lt;<span style="color:#2b91af">GridViewRowPresenter</span>&gt;(item); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (rowPresenter != <span style="color:blue">null</span>) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">rowPresenter.ApplyTemplate();</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">ContentPresenter</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> templatedParent = <span style="color:#2b91af">VisualTreeHelper</span>.GetChild(rowPresenter, column) <span style="color:blue">as</span> <span style="color:#2b91af">ContentPresenter</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">DataTemplate</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> dataTemplate =gridView.Columns[column].CellTemplate; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (dataTemplate != <span style="color:blue">null</span> &amp;&amp; templatedParent != <span style="color:blue">null</span>) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">templatedParent.ApplyTemplate();</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">return</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> dataTemplate.FindName(name, templatedParent) <span style="color:blue">as</span> <span style="color:#2b91af">FrameworkElement</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">return</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">null</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">private</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">static</span> T GetFrameworkElementByName&lt;T&gt;(<span style="color:#2b91af">FrameworkElement</span> referenceElement) <span style="color:blue">where</span> T : <span style="color:#2b91af">FrameworkElement</span> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{ </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">FrameworkElement</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> child = <span style="color:blue">null</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">for</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (<span style="color:#2b91af">Int32</span> i = 0; i &lt; <span style="color:#2b91af">VisualTreeHelper</span>.GetChildrenCount(referenceElement); i++) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{ child = </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">VisualTreeHelper</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">.GetChild(referenceElement, i) <span style="color:blue">as</span> <span style="color:#2b91af">FrameworkElement</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">System.Diagnostics.</span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">Debug</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">.WriteLine(child); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (child != <span style="color:blue">null</span> &amp;&amp; child.GetType() == <span style="color:blue">typeof</span>(T)) { <span style="color:blue">break</span>; } </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">else</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">if</span> (child != <span style="color:blue">null</span>) { child = GetFrameworkElementByName&lt;T&gt;(child); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">if</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (child != <span style="color:blue">null</span> &amp;&amp; child.GetType() == <span style="color:blue">typeof</span>(T)) { <span style="color:blue">break</span>; } } } <span style="color:blue">return</span> child <span style="color:blue">as</span> T; } } </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">private</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">void</span> BindGrid() </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">try </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">string</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">[] arr1 = <span style="color:blue">new</span> <span style="color:blue">string</span>[10]; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">arr1[0] = <span style="color:#a31515">&quot;FirstItem&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">arr1[1] = <span style="color:#a31515">&quot;SecondItem&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">arr1[3] = <span style="color:#a31515">&quot;ThirdItem&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">string</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">[] arr2 = <span style="color:blue">new</span> <span style="color:blue">string</span>[10]; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">arr2[0] = <span style="color:#a31515">&quot;S2FirstItem&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">arr2[1] = <span style="color:#a31515">&quot;S2SecondItem&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">arr2[3] = <span style="color:#a31515">&quot;S2ThirdItem&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span> </p> <p><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> </span></p> <p style="margin:0in 0in 0pt"><span style="font-size:10pt;font-family:'Verdana','sans-serif'">myGridView = <span style="color:blue">new</span> <span style="color:#2b91af">GridView</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">myGridView.AllowsColumnReorder = <span style="color:blue">true</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">myGridView.ColumnHeaderToolTip = <span style="color:#a31515">&quot;Employee Information&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">  </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">GridViewColumn</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> gvc1 = <span style="color:blue">new</span> <span style="color:#2b91af">GridViewColumn</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc1.DisplayMemberBinding = </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">new</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:#2b91af">Binding</span>(<span style="color:#a31515">&quot;FirstName&quot;</span>); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc1.Header = <span style="color:#a31515">&quot;FirstName&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc1.Width = 100;</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">myGridView.Columns.Add(gvc1);</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">GridViewColumn</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> gvc2 = <span style="color:blue">new</span> <span style="color:#2b91af">GridViewColumn</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc2.DisplayMemberBinding = <span style="color:blue">new</span> <span style="color:#2b91af">Binding</span>(<span style="color:#a31515">&quot;LastName&quot;</span>); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc2.Header = <span style="color:#a31515">&quot;Last Name&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc2.Width = 100;</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">myGridView.Columns.Add(gvc2);</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">GridViewColumn</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> gvc3 = <span style="color:blue">new</span> <span style="color:#2b91af">GridViewColumn</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc3.DisplayMemberBinding = <span style="color:blue">new</span> <span style="color:#2b91af">Binding</span>(<span style="color:#a31515">&quot;EmployeeNumber&quot;</span>); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc3.Header = <span style="color:#a31515">&quot;Employee No.&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc3.Width = 100;</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">myGridView.Columns.Add(gvc3);</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">GridViewColumn</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> gvc4 = <span style="color:blue">new</span> <span style="color:#2b91af">GridViewColumn</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc4.Header = <span style="color:#a31515">&quot;RatingAndResponse&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">myGridView.Columns.Add(gvc4);</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">ComboBox</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> cmb = <span style="color:blue">new</span> <span style="color:#2b91af">ComboBox</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">cmb.Width = 60;</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">template = </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">new</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:#2b91af">DataTemplate</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">factoryComboBox = <span style="color:blue">new</span> <span style="color:#2b91af">FrameworkElementFactory</span>(<span style="color:blue">typeof</span>(<span style="color:#2b91af">ComboBox</span>)); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">factoryComboBox.SetValue(<span style="color:#2b91af">ComboBox</span>.HorizontalAlignmentProperty, <span style="color:#2b91af">HorizontalAlignment</span>.Right); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">factoryComboBox.SetBinding(<span style="color:#2b91af">ComboBox</span>.ItemsSourceProperty, <span style="color:blue">new</span> <span style="color:#2b91af">Binding</span>(<span style="color:#a31515">&quot;ResponseAndRating&quot;</span>)); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">factoryComboBox.SetValue(<span style="color:#2b91af">ComboBox</span>.WidthProperty, cmb.Width); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">template.VisualTree = factoryComboBox;</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">gvc4.CellTemplate = template;</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">System.Collections.ObjectModel.</span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">Collection</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">&lt;<span style="color:#2b91af">Employee</span>&gt; emp = <span style="color:blue">new</span> System.Collections.ObjectModel.<span style="color:#2b91af">Collection</span>&lt;<span style="color:#2b91af">Employee</span>&gt;(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">Employee</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> employee = <span style="color:blue">new</span> <span style="color:#2b91af">Employee</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">employee.FirstName = <span style="color:#a31515">&quot;Hr&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">employee.LastName = <span style="color:#a31515">&quot;Dv&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">employee.EmployeeNumber = <span style="color:#a31515">&quot;1&quot;</span>;  </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">employee.ResponseAndRating = arr1;</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">emp.Add(employee);</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">Employee</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> employee1 = <span style="color:blue">new</span> <span style="color:#2b91af">Employee</span>(); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">employee1.FirstName = <span style="color:#a31515">&quot;Bg&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">employee1.LastName = <span style="color:#a31515">&quot;Dv&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">employee1.EmployeeNumber = <span style="color:#a31515">&quot;2&quot;</span>; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">employee1.ResponseAndRating = arr2;</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">emp.Add(employee1);</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:green;font-family:'Verdana','sans-serif'"> </span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">listView1.ItemsSource = emp; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">listView1.View = myGridView; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">catch</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> (<span style="color:#2b91af">Exception</span> ex) </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'">MessageBox</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">.Show(ex.Message); </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">class</span> <span style="color:#2b91af">Employee </span></p> <p><span style="font-size:10pt;color:#2b91af;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">private</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">string</span> _firstName; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">private</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">string</span> _lastName; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">private</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">string</span> _empNumber; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">private</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">string</span>[] _responseAndRating; </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">string</span> FirstName </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{ </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">get</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{<span style="color:blue">return</span> _firstName;} <span style="color:blue">set</span>{_firstName = <span style="color:blue">value</span>;} } </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">string</span> LastName </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{ </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">get</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> { <span style="color:blue">return</span> _lastName; } <span style="color:blue">set</span> { _lastName=<span style="color:blue">value</span>;} } </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">string</span> EmployeeNumber </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{ </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">get</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> { <span style="color:blue">return</span> _empNumber; } <span style="color:blue">set</span> { _empNumber=<span style="color:blue">value</span>;} } </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">public</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> <span style="color:blue">string</span>[] ResponseAndRating </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">{</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">get</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> { <span style="color:blue">return</span> _responseAndRating; } </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;color:blue;font-family:'Verdana','sans-serif'">set</span><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> { _responseAndRating = <span style="color:blue">value</span>; } </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'"> </span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p><span style="font-size:10pt;font-family:'Verdana','sans-serif'">}</span></p> <p style="margin:auto 0in"> </p></span></span></span>Mon, 01 Dec 2008 04:32:04 Z2008-12-01T04:32:04Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#7496cca2-b49f-4152-8fb4-583e6553bc79http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#7496cca2-b49f-4152-8fb4-583e6553bc79Juan Carlos Vazquez - MSFThttp://social.msdn.microsoft.com/Profile/en-US/?user=Juan%20Carlos%20Vazquez%20-%20MSFTAccessing and Mondifying DataTemplate Element Runtime for CellTemplateHello,<br/><br/>This is a great code and it's helping us testing wpf scenarios. Still I'm facing a problem with <br/><span style="font-size:x-small;color:#2b91af;font-family:Consolas"><span style="font-size:x-small;color:#2b91af;font-family:Consolas"><span style="font-size:x-small;color:#2b91af;font-family:Consolas"><font face=Consolas size=2 color="#2b91af"><font face=Consolas size=2 color="#2b91af"><font face=Consolas size=2 color="#2b91af"> <p>ListViewItem</p> </font></font></font></span><font face=Consolas size=2 color="#2b91af"><font face=Consolas size=2 color="#2b91af"> <p> </p> </font></font></span><font face=Consolas size=2 color="#2b91af"> <p> </p> </font></span> <p><span style="font-size:x-small;font-family:Consolas"><span style="font-size:x-small;font-family:Consolas"> item = listView.ItemContainerGenerator.ContainerFromItem( listView.Items[row] ) </span></span><span style="font-size:x-small;color:#0000ff;font-family:Consolas"><span style="font-size:x-small;color:#0000ff;font-family:Consolas"><span style="font-size:x-small;color:#0000ff;font-family:Consolas">as</span></span></span><span style="font-size:x-small;font-family:Consolas"><span style="font-size:x-small;font-family:Consolas"> </span></span><span style="font-size:x-small;color:#2b91af;font-family:Consolas"><span style="font-size:x-small;color:#2b91af;font-family:Consolas"><span style="font-size:x-small;color:#2b91af;font-family:Consolas">ListViewItem</span></span></span><span style="font-size:x-small;font-family:Consolas"><span style="font-size:x-small;font-family:Consolas">;<br/><br/>I have a ListView bound to a DataView with rows in diferent DataRowStates. When I try to get the ListViewItem from a row that is on DataRowState = Modified on BeginEdit, ContainerFromItem returns null when the row is actually showing on the ListView.<br/><br/>Is there another API I could use or why is it not working?<br/><br/>Best Regards<br/>Juan<br/><br/></span></span></p><hr class="sig">This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.Wed, 06 May 2009 23:48:01 Z2009-05-06T23:48:01Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#01a9a253-6b02-4908-8ce2-d255b61e4241http://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#01a9a253-6b02-4908-8ce2-d255b61e4241Juan Carlos Vazquez - MSFThttp://social.msdn.microsoft.com/Profile/en-US/?user=Juan%20Carlos%20Vazquez%20-%20MSFTAccessing and Mondifying DataTemplate Element Runtime for CellTemplateNevermind...<br/><br/>The problem was that I got null for rows that haven't been displayed yet. <br/><br/>At least what I did was making the ListView big enough to display all my rows, is there a better work around?<br/><br/>Thanks<br/>Juan<hr class="sig">This posting is provided &quot;AS IS&quot; with no warranties, and confers no rights.Thu, 07 May 2009 00:20:11 Z2009-05-07T00:20:11Zhttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#9027a7c6-72c7-4547-a17d-185740d4064ahttp://social.msdn.microsoft.com/Forums/en/wpf/thread/0b7e4575-39d4-4e35-a3c5-bda4458fa11e#9027a7c6-72c7-4547-a17d-185740d4064aFrank Janhttp://social.msdn.microsoft.com/Profile/en-US/?user=Frank%20JanAccessing and Mondifying DataTemplate Element Runtime for CellTemplateHello,<br/><br/>I use this code too and I get the same things a remarked bij Juan. I use VB so:<br/><span style="color:#0000ff;font-size:x-small"><span style="color:#0000ff;font-size:x-small"><font size=2 color="#0000ff"><font size=2 color="#0000ff"> <p>Dim</p> </font></font></span><font size=2 color="#0000ff"> <p> </p> </font></span> <p><span style="font-size:x-small"> item </span><span style="color:#0000ff;font-size:x-small"><span style="color:#0000ff;font-size:x-small">As</span></span><span style="font-size:x-small"> ListViewItem = </span><span style="color:#0000ff;font-size:x-small"><span style="color:#0000ff;font-size:x-small">TryCast</span></span><span style="font-size:x-small">(listView.ItemContainerGenerator.ContainerFromItem(listView.Items(row)), ListViewItem)<br/><br/>This returns item = nothing in some cases. <br/>I loop through all items in a listview (count = 39). For items 0 to 15 everything works great, for item 16 above code returns item = nothing and there for my function returns nothing. So the checkbox I want to uncheck is not found.<br/><br/>I tried to make all listview items visible (like Juan suggested), but that doesn't do the trick.<br/><br/>Does any one have a solution for me?<br/><br/>Best regards,<br/><br/>Frank</span></p>Wed, 29 Jul 2009 14:20:11 Z2009-07-29T14:20:11Z