I am bind datagrid using List in wpf and bind combobox in datagrid but i am scroll datagrid that time combox has been reset following my code any one can give me solution
Reasion :- Grid Scroll Time
Desizen :-
<DataGrid x:Name="grddisplay" TabIndex="1" AutoGenerateColumns="False" ItemsSource="{Binding C_HoldControlValue}" FontSize="11" HorizontalAlignment="Left" Margin="10,58,0,0" VerticalAlignment="Top" Width="414" Height="455" IsTabStop="True" RenderTransformOrigin="0.5,0.5" FontFamily="Verdana" >
<DataGrid.Columns>
<DataGridTextColumn Header="Item No" Width="60" Binding="{Binding SrNo}"></DataGridTextColumn>
<DataGridTemplateColumn Header="Remark" Width="60">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<ComboBox Margin="2" Name="cmbbindremark" SelectedIndex="1" SelectedItem="Control_Remark" SelectedValue="{ Binding Control_Remark, Mode=TwoWay }" ItemsSource="{Binding C_Remarks_Collection,Mode=TwoWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTextColumn Header="Remarks" Width="80" Binding="{Binding Remarks}"></DataGridTextColumn>
<DataGridTextColumn Header="Category" Width="90" Binding="{Binding Category}"></DataGridTextColumn>
<DataGridTextColumn Header="Caption" Width="160" Binding="{Binding Caption}" ></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
Code:-
Dim C_HoldControlValue As New List(Of ControlValue)()
Try
grddisplay.AutoGenerateColumns = True
svbutton.IsEnabled = False
Dim OCcmd As New SqlCommand
Dim OCadp As New SqlDataAdapter
Dim strin() As String = Nothing
OCcmd = New SqlCommand("select cbsrno,Remarks,Category,cbcaptons,trgvalue from ControlBox order by cbsrno", sqlcn)
OCadp.SelectCommand = OCcmd
OCadp.Fill(ds_cntrl, tblname)
dv2 = New DataView(ds_cntrl.Tables(tblname))
Dim splStrRemark As DataRow = ds_cntrl.Tables(0).Rows(1)
grddisplay.ItemsSource = LoadCollectionData(ds_cntrl)
grddisplay.AutoGenerateColumns = False
Catch
End Try
End Sub
function :-
Public Function LoadCollectionData(ByVal ds As DataSet) As List(Of ControlValue)
Dim strin() As String = Nothing
Dim authors As New List(Of ControlValue)()
For Each dr As DataRow In ds.Tables(0).Rows
Dim s As String = dr("Remarks")
If dr.Table.Columns(1).ToString = "Remarks" Then
Dim dsa As String = s.ToString
strin = dsa.ToString.Split(",")
End If
authors.Add(New ControlValue() _
With { _
.SrNo = dr(0), _
.Remarks = dr(4), _
.Category = dr(2), _
.Caption = dr(3), _
.C_Remarks_Collection = strin})
Next
grddisplay.CanUserAddRows = False
Return authors
End Function
property :-
Public Class ControlValue
Private C_Remarks As String
Private C_Caption As String
Private C_Category As String
Private C_SrNo As String
Private C_RemarksColl() As String
Public Property Remarks() As String
Get
Return C_Remarks
End Get
Set(value As String)
C_Remarks = value
End Set
End Property
Public Property Caption() As String
Get
Return C_Caption
End Get
Set(value As String)
C_Caption = value
End Set
End Property
Public Property Category() As String
Get
Return C_Category
End Get
Set(value As String)
C_Category = value
End Set
End Property
Public Property SrNo() As String
Get
Return C_SrNo
End Get
Set(value As String)
C_SrNo = value
End Set
End Property
Public Property C_Remarks_Collection() As String()
Get
Return C_RemarksColl
End Get
Set(value As String())
C_RemarksColl = value
End Set
End Property
End Class