Skip to main content

Microsoft Silverlight

How to make particular row in datagrid as editable mode basing on some condionRSS Feed

(0)

kishorekumar.malla@gmail.com
kishorek...

Member

Member

0 points

1 Posts

How to make particular row in datagrid as editable mode basing on some condion

Hi ,

 I want to make particular as row as in Editable mode basing on some condion.

I have to show rows in non editable mode .But particular cells in row should be shown editable mode without clicking or focus or any event

 My code is like this:

<my:DataGrid x:Name="shopforecastTurnoverDataGrid"

Margin="5,1,5,0"

AlternatingRowBackground="#E5ECF0"

RowBackground="#F0F4F5"

FontFamily="Tahoma"

RowHeight="20"

Background="Transparent" VerticalAlignment="Stretch" HorizontalAlignment="Stretch" AutoGenerateColumns="False" AreRowDetailsFrozen="True"

FontSize="11"

Foreground="Black"

HeadersVisibility="Column" LoadingRow="shopforecastTurnoverDataGrid_LoadingRow">

<my:DataGrid.Columns>

<my:DataGridTextColumn x:Name="lblDepartment" Header="Department" CanUserSort="True" Binding="{Binding Department}" Width="230" IsReadOnly="True" SortMemberPath="Department"/>

<my:DataGridTextColumn x:Name="lblTotal" Header="Total" CanUserSort="True" Binding="{Binding Total}" Width="90" IsReadOnly="True" SortMemberPath="Total" CellStyle="{StaticResource DatagridCellStyleRightAlignment}" />

<my:DataGridTemplateColumn Header="Monday" Width="90">

<my:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<TextBlock TextAlignment="Right" Text="{Binding Monday}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellTemplate>

<my:DataGridTemplateColumn.CellEditingTemplate >

<DataTemplate >

<TextBox TextAlignment="Right" Text="{Binding Monday, Mode=TwoWay}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellEditingTemplate>

</my:DataGridTemplateColumn>

<my:DataGridTemplateColumn Header="Tuesday" Width="90">

<my:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<TextBlock TextAlignment="Right" Text="{Binding Tuesday}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellTemplate>

<my:DataGridTemplateColumn.CellEditingTemplate >

<DataTemplate >

<TextBox TextAlignment="Right" Text="{Binding Tuesday, Mode=TwoWay}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellEditingTemplate>

</my:DataGridTemplateColumn>

<my:DataGridTemplateColumn Header="Wednesday" Width="90">

<my:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<TextBlock TextAlignment="Right" Text="{Binding Wednesday}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellTemplate>

<my:DataGridTemplateColumn.CellEditingTemplate >

<DataTemplate >

<TextBox TextAlignment="Right" Text="{Binding Wednesday, Mode=TwoWay}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellEditingTemplate>

</my:DataGridTemplateColumn>

<my:DataGridTemplateColumn Header="Thursday" Width="90">

<my:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<TextBlock TextAlignment="Right" Text="{Binding Thursday}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellTemplate>

<my:DataGridTemplateColumn.CellEditingTemplate >

<DataTemplate >

<TextBox TextAlignment="Right" Text="{Binding Thursday, Mode=TwoWay}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellEditingTemplate>

</my:DataGridTemplateColumn>

<my:DataGridTemplateColumn Header="Friday" Width="90">

<my:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<TextBlock TextAlignment="Right" Text="{Binding Friday}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellTemplate>

<my:DataGridTemplateColumn.CellEditingTemplate >

<DataTemplate >

<TextBox TextAlignment="Right" Text="{Binding Friday, Mode=TwoWay}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellEditingTemplate>

</my:DataGridTemplateColumn>

<my:DataGridTemplateColumn Header="Saturday" Width="90">

<my:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<TextBlock TextAlignment="Right" Text="{Binding Saturday}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellTemplate>

<my:DataGridTemplateColumn.CellEditingTemplate >

<DataTemplate >

<TextBox TextAlignment="Right" Text="{Binding Saturday, Mode=TwoWay}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellEditingTemplate>

</my:DataGridTemplateColumn>

<my:DataGridTemplateColumn Header="Sunday" Width="90">

<my:DataGridTemplateColumn.CellTemplate>

<DataTemplate>

<TextBlock TextAlignment="Right" Text="{Binding Sunday}"/>

</DataTemplate>

</my:DataGridTemplateColumn.CellTemplate>

<my:DataGridTemplateColumn.CellEditingTemplate >

<DataTemplate >

<TextBox TextAlignment="Right" Text="{Binding Sunday, Mode=TwoWay}"/>

 </DataTemplate>

</my:DataGridTemplateColumn.CellEditingTemplate>

</my:DataGridTemplateColumn>

</my:DataGrid.Columns>

</my:DataGrid>

In code Behind,i have written like this:

private void shopforecastTurnoverDataGrid_LoadingRow(object sender, DataGridRowEventArgs e)

{

ShopForecastEntity objShopForeCast = e.Row.DataContext as ShopForecastEntity;if (objShopForeCast != null && objShopForeCast.Department != "Expected Turnover")

{

e.Row.IsTabStop = false;

e.Row.IsHitTestVisible = false;

}

else

{

e.Row.IsTabStop =
true;e.Row.IsHitTestVisible = true;

}

if ((objShopForeCast.Department == "Expected Turnover") || (objShopForeCast.Department == "Total history"))

{

e.Row.FontWeight =
FontWeights.Bold;

e.Row.Opacity = 60;

e.Row.Background = new SolidColorBrush

(

Color.FromArgb(255,

Convert.ToByte("BF", 16),

Convert.ToByte("D2", 16),Convert.ToByte("DB", 16))

);

}

else

{

e.Row.FontWeight =
FontWeights.Normal;

e.Row.Background = new SolidColorBrush

(

Color.FromArgb(255,

Convert.ToByte("F0", 16),

Convert.ToByte("F4", 16),Convert.ToByte("F5", 16))

);

}

shopforecastTurnoverDataGrid.SelectedIndex = e.Row.GetIndex() + 1;

}

 

 

Thanks Inadvance

 

Regards

Kishore

  • Unanswered Question
  • Answered Question
  • Announcement
Microsoft Communities