I am using a grid to display candidate score, I have 3 columns in my grid, 2nd column is a dropdown on selection of the dropdown value I want to show the datatemplate value. I have two values in datatemplate 1. checkbox 2. textblock. As per the selection in dropdown of 2nd column I want to visible checkbox or a textbox. But when I select the value in dropdown 2nd time it is not displaying the value.
Following are my xaml code and a code behind:
<UserControl.Resources>
<
DataTemplate x:Key="tempNotification">
<Canvas Width="90">
<CheckBox x:Name="chkSend" Canvas.Top="-10" Canvas.Left="4" Visibility="Collapsed" Content="Send" Checked="chkSend_Checked" Unchecked="chkSend_Unchecked"></CheckBox>
<TextBlock x:Name="txtSend" Canvas.Top="-10" Canvas.Left="4" Visibility="Collapsed" Text="Not needed"></TextBlock>
</Canvas>
</DataTemplate>
<
UserControl.Resources>
<
grid:RadGridView x:Name="RadGridRankingSecond" Canvas.Left="69" Canvas.Top="72" MaxWidth="430"
MaxHeight="250" IsScrolling="False" CanUserReorderColumns="False"
CanUserResizeColumns="False" FrozenColumnCount="4"
ScrollViewer.HorizontalScrollBarVisibility="Visible"
ScrollViewer.VerticalScrollBarVisibility="Disabled" Visibility="Visible"
RowIndicatorVisibility="Collapsed" IsFilteringAllowed="False"
Background="White" AutoGenerateColumns="False" ShowGroupPanel="False"
CanUserSortColumns="False" VerticalAlignment="Top" HorizontalAlignment="Left"
MouseWheel="RadGridRankingSecond_MouseWheel"
RowLoaded="RadGridRankingSecond_RowLoaded" DataLoaded="RadGridRankingSecond_DataLoaded" >
<grid:RadGridView.ItemTemplate>
<DataTemplate>
<VirtualizingStackPanel></VirtualizingStackPanel>
</DataTemplate>
</grid:RadGridView.ItemTemplate>
<grid:RadGridView.Columns>
<!-- <grid:GridViewDataColumn Width="60" UniqueName="Ranking" Header="Ranking" IsReadOnly="True" DataMemberBinding="{Binding ranking}" />-->
<grid:GridViewDataColumn Width="120" UniqueName="Candidant" Header="Candidate" IsReadOnly="True" DataMemberBinding="{Binding applicantName}" />
<grid:GridViewDataColumn Width="90" UniqueName="Decision" Header="Decision" CellTemplate="{StaticResource tempDecision}"/>
<grid:GridViewDataColumn Width="90" UniqueName="Notification" CellTemplate="{StaticResource tempNotification}" TextAlignment="Left" Header="Notification" />
</grid:RadGridView.Columns>
</grid:RadGridView>
Code behind code:
private
void cmbDecision_SelectionChanged(object sender, Telerik.Windows.Controls.SelectionChangedEventArgs e)
{
if ((((Telerik.Windows.Controls.Selector)(((Telerik.Windows.Controls.RadComboBox)
(((Telerik.Windows.Controls.Selector)(sender)))))).SelectedValue) != null)
{
if ((int)((Telerik.Windows.Controls.Selector)(((Telerik.Windows.Controls.RadComboBox)
(((Telerik.Windows.Controls.Selector)(sender)))))).SelectedValue >0)
{
objDecisionList.Where( c => c.submission_Id == ( (EMS.Checklist.UI.ServiceClient.
Decision)(
(Telerik.Windows.Controls.
Selector)(sender)).ParentOfType<GridViewRow>
().DataContext).submission_Id).ToList().ForEach(
x => x.statusId = (
int)(((Telerik.Windows.Controls.Selector)
(((Telerik.Windows.Controls.RadComboBox)(((Telerik.Windows.Controls.Selector)
(sender)))))).SelectedValue));
if (((EMS.Checklist.UI.ServiceClient.Status)(((object[])(e.AddedItems))[0])).statusName ==
"Hire")
{
foreach (var cell in (((Telerik.Windows.Controls.Selector)(sender)).ParentOfType<GridViewRow>
()).ChildrenOfType<GridViewCell>())
{
if (cell.Column.UniqueName == "Notification")
{
((cell.ChildrenOfType<
Canvas>().FirstOrDefault()).ChildrenOfType<CheckBox>
()).FirstOrDefault().Visibility = Visibility.Collapsed;
((cell.ChildrenOfType<
Canvas>().FirstOrDefault()).ChildrenOfType<TextBlock>
()).FirstOrDefault().Visibility = Visibility.Visible;
}
}
}
else if (((EMS.Checklist.UI.ServiceClient.Status)(((object[])(e.AddedItems))[0])).statusName ==
"Decline")
{
foreach (var cell in (((Telerik.Windows.Controls.Selector)(sender)).ParentOfType<GridViewRow>
()).ChildrenOfType<GridViewCell>())
{
if (cell.Column.UniqueName == "Notification")
{
((cell.ChildrenOfType<
Canvas>().FirstOrDefault()).ChildrenOfType<TextBlock>
()).FirstOrDefault().Visibility = Visibility.Collapsed;
((cell.ChildrenOfType<
Canvas>().FirstOrDefault()).ChildrenOfType<CheckBox>
()).FirstOrDefault().Visibility = Visibility.Visible;
}
}
}
}
}
}
Please let me know if I am doing anything wrong here....
Thanks in advance for your help.
Sujay