滚动datagridcombo框时如何避免组合框重置 [英] how to avoid combo box reset when scrolling datagridcombo box

查看:61
本文介绍了滚动datagridcombo框时如何避免组合框重置的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我使用wpf中的List绑定数据网格并绑定数据网格中的组合框但是我滚动数据网格,时间combox已经重置了我的代码后任何人都可以给我解决方案

Reasion: - Grid Scroll Time



Desizen: -

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>
                <!--<DataGridComboBoxColumn  Header="Remarks"  x:Name="cmbbindremark" ItemsSource="{Binding C_Remarks_Coll}"  SelectedItemBinding ="{ Binding  C_Remarks_Collection,Mode=TwoWay}"   Width="110" ></DataGridComboBoxColumn>-->
            <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





属性: -

公共类ControlValue

私有C_Remarks为字符串

私有C_Caption As字符串

私有C_Category为字符串

私有C_SrNo为字符串

私有C_RemarksColl()为字符串

公共财产备注()作为字符串

获取

返回C_Remarks

结束获取

设置(值为字符串)

C_Remarks = value

结束集

结束财产



公共财产标题()如字符串

获取

返回C_Caption

结束获取

设置(值为字符串)

C_Caption = value

结束集

结束财产



公共财产类别()As String

获取

返回C_Category

结束获取

套装(价值为字符串)

C_Category =价值

结束套件

结束财产


Public Property SrNo()As String

获取

返回C_SrNo

结束获取

Set(value As String)

C_SrNo = value

结束集

结束物业

Public Property C_Remarks_Collection()As String()

获取

返回C_RemarksColl

结束获取

Set( value As String())

C_RemarksColl = value

结束集

结束财产

结束类



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

推荐答案

xmlns:my="http://schemas.microsoft.com/wpf/2008/toolkit"
   xmlns:staticData="clr-namespace:Ocean.MW"







<Window.Resources>
       <staticData:ControlValue x:Key="ControlValue"  ></staticData:ControlValue>
   </Window.Resources>





< datagridtemplatecolumn header =备注width =100> ;

< datagridtemplatecolumn.celltemplate>

< datatemplate>

< textblock text ={Binding Remarks}>





< datagridtemplatecolumn.celleditingtemplate>

< datatemplate>

< combobox height =22>

ItemsSource ={Binding C_Remarks_Collection}

SelectedItem ={Binding Remarks}/>






<datagridtemplatecolumn header="Remarks" width="100">
<datagridtemplatecolumn.celltemplate>
<datatemplate>
<textblock text="{Binding Remarks}">


<datagridtemplatecolumn.celleditingtemplate>
<datatemplate>
<combobox height="22">
ItemsSource="{Binding C_Remarks_Collection }"
SelectedItem="{Binding Remarks}"/>



这篇关于滚动datagridcombo框时如何避免组合框重置的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆