2011-09-25 101 views
0

我在datagrid.I中有一个组合框,使用Silverlight 4.0和MVVM。 我的代码工作正常,除非当我从datagrid中删除记录并添加另一个记录时,添加行中的组合框的SelectedValue绑定不起作用。DataGrid中的Silverlight组合框绑定SelectedItem问题

<sdk:DataGrid AutoGenerateColumns="False" ItemsSource="{Binding Items, Mode=TwoWay}" Name="dataGrid2" > 
     <sdk:DataGrid.Columns>     
      <sdk:DataGridTemplateColumn Width="50*"> 
       <sdk:DataGridTemplateColumn.CellEditingTemplate> 
        <DataTemplate> 
         <ComboBox ItemsSource="{Binding Path=Products, Mode=OneWay}"  
            SelectedValue="{Binding Path=ProductId,Mode=TwoWay}" 
            DisplayMemberPath="ProductTitle" 
            SelectedValuePath="ProductId"/> 
        </DataTemplate> 
       </sdk:DataGridTemplateColumn.CellEditingTemplate> 
      </sdk:DataGridTemplateColumn> 
     </sdk:DataGrid.Columns>   
    </sdk:DataGrid> 

感谢

回答

1

发现这段代码在某些网站,它帮助我在类似的情况:

public class ComboBoxEx : ComboBox 
{ 
    protected override void OnItemsChanged(System.Collections.Specialized.NotifyCollectionChangedEventArgs e) 
    { 
     var bindingExpression = GetBindingExpression(SelectedValueProperty); 

     base.OnItemsChanged(e); 

     if (bindingExpression != null) 
     { 
      var binding = bindingExpression.ParentBinding; 
      SetBinding(SelectedValueProperty, bindingExpression.ParentBinding); 
     } 
    } 
}