2009-12-29 75 views
0

我是WPF的新手。我有一个wpftoolkit datagrid,我使用组合框作为datagridcombox列。我正在使用可观察的代码集合来绑定组合框。下面是收集和它的类...DataGridComboBoxColumn在Datagrid中的问题

#Region "Class & Coll" 
Public Class CodesColl 
    Inherits ObservableCollection(Of Codes) 
End Class 

Public Class Codes 

    Private pCode As String 
    Private pDescription As String 

    Public Sub New() 
     pCode = String.Empty 
     pDescription = String.Empty  
    End Sub 
#End Region 

#Region "Property" 

    Public Property fldCode() As String 
     Get 
      Return pCode 
     End Get 
     Set(ByVal value As String) 
      pCode = value 
     End Set 
    End Property 

    Public Property fldDescription() As String 
     Get 
      Return pDescription 
     End Get 
     Set(ByVal value As String) 
      pDescription = value 
     End Set 
    End Property 


#End Region 
End Class 

现在我想达到什么是我需要收集与下拉绑定在grid.In我网我在第一列两列,我必须展示代码(fldCode)以及代码的选择,同一行的下一列将填充其描述(fldDescription)。

我的XAML是这样的:在这里

<wpfkit:DataGrid Margin="3" Style="{DynamicResource SimpleDataGrid}" FontWeight="Normal" 
MaxHeight="100" ItemsSource="{Binding Source={StaticResource odpExistingCodesColl}}" 
AutoGenerateColumns="False" Name="dgCodes" VerticalScrollBarVisibility="Visible" >         
<wpfkit:DataGrid.Columns> 
    <wpfkit:DataGridTemplateColumn IsReadOnly="True"> 
     <wpfkit:DataGridTemplateColumn.CellTemplate>            
      <DataTemplate>                
       <Image Style="{DynamicResource SimpleImageDelete}"/> 
      </DataTemplate> 
     </wpfkit:DataGridTemplateColumn.CellTemplate> 
    </wpfkit:DataGridTemplateColumn> 
    <wpfkit:DataGridComboBoxColumn Header="Code" 
    DisplayMemberPath="fldCode" 
    SelectedValueBinding="{Binding fldCodes.fldCode}" 
    SelectedValuePath="fldCode"  
    SelectedItemBinding="{Binding fldCodeList}"           
    Width="100" x:Name="cbTCodes" > 
    <wpfkit:DataGridComboBoxColumn.ElementStyle> 
     <Style TargetType="ComboBox"> 
      <Setter Property="IsSynchronizedWithCurrentItem" Value="False" /> 
      <Setter Property ="ItemsSource" Value="{Binding Path=odpCodesColl}"/> 

     </Style> 
     </wpfkit:DataGridComboBoxColumn.ElementStyle> 
     <wpfkit:DataGridComboBoxColumn.EditingElementStyle > 
      <Style TargetType="ComboBox"> 
       <Setter Property ="ItemsSource" Value="{Binding Path=odpCodesColl}"/> 
       <Setter Property ="IsDropDownOpen" Value="True"/> 
      </Style> 
     </wpfkit:DataGridComboBoxColumn.EditingElementStyle> 
    </wpfkit:DataGridComboBoxColumn>               
    <wpfkit:DataGridTextColumn Width="375" Header="Description" x:Name="tbTCodeDescription" /> 
</wpfkit:DataGrid.Columns> 
</wpfkit:DataGrid> 

odpExistingCodesColl是另一个集合,通过它我绑定了整个电网和用于代码及其说明发送到,但我面临以下问题

  1. 无法在下拉菜单中显示代码。
  2. 不知何故,我管理这样做,但它从组合框失去焦点后消失。
  3. 无法检索其选择更改的描述,因为我无法找到该事件。

所以你们请帮助我尽快..任何帮助将高度赞赏.. 由于提前 阿米特兰詹

回答

1

您可以在Vincent's blog检查有关如何处理工作细节信息Wpf DataGrid(也是DataGridComboBoxColumn)。

+0

我已经访问过VinSibal,但它没有多大关联。 Anywayz感谢您的帮助 – 2009-12-30 11:47:07