2013-01-22 32 views
0

在下面的示例中,我尝试绑定PartNumber以加载到DataGridComboBoxColumn,但我无法做到。我怎样才能做到这一点?无法绑定数据网格中的组合框

public class Order 
{ 
    public string OrderName { get; set; } 
    public List<Parts> PartsList { get; set; } 
} 

public class Parts 
{ 
    public string PartName { get; set; } 
    public double PartQuantity { get; set; } 
    public string PartNumber { get; set; } 
} 

XAML:

<DataGrid Name="dgrStavke" 
      AutoGenerateColumns="False" 
      Height="160" 
      Width="600" 
      HorizontalAlignment="Left" 
      Margin="5" 
      Grid.Row="7" 
      Grid.ColumnSpan="4" 
      ItemsSource="{Binding}"> 
    <DataGrid.Columns> 
    <DataGridComboBoxColumn Header="ValueCombo" 
          ItemsSource="{Binding Path=PartsList}" 
          DisplayMemberPath="PartNumber"> 
    </DataGrid.Columns> 
</DataGrid> 
+0

我不认为结合是正确的。检查Visual Studio输出窗口是否有绑定错误。 –

+0

如果您已正确设置DataContext,则只需使用ItemsSource =“{Binding PartsList}”。 –

回答

0

使用的ObservableCollection,而不是名单。如果你想使用列表,那么你将不得不通知它。但最好的方法是使用ObservableCollection。我希望这将有所帮助。

我刚刚已经看到,组合框的ItemSource也是不正确的应该是这样

ItemsSource="{Binding Path=Order.PartsList}" 
+0

他会的。如果他将使用添加,删除,插入,删除List的方法来添加,删除项目,则不会通知任何内容,或者他将不得不在这些方法之后通知它。只有在他使用=运算符将值分配给列表时,它才会被通知 – ethicallogics