当我离开单元格时,当前我的DataGrid
(Silverlight 4)正在更新。每当单元格的值发生更改时,我都需要更新它。如何在Silverlight DataGrid更新绑定数据时进行更改?
1
A
回答
1
我来到了我自己的答案和它与用于瞬间改变一个TextBox的绑定行为注射来源(see here)。我subclassed DataGrid
并添加了以下代码:
protected override void OnPreparingCellForEdit(DataGridPreparingCellForEditEventArgs e)
{
base.OnPreparingCellForEdit(e);
TextBox textBox = e.EditingElement as TextBox;
if (textBox != null)
{
textBox.TextChanged -= OnTextChanged;
textBox.TextChanged += OnTextChanged;
}
ComboBox comboBox = e.EditingElement as ComboBox;
if (comboBox != null)
{
comboBox.SelectionChanged -= OnSelectionChanged;
comboBox.SelectionChanged += OnSelectionChanged;
}
}
private void OnSelectionChanged(object sender, SelectionChangedEventArgs e)
{
ComboBox comboBox = sender as ComboBox;
if (comboBox == null)
return;
BindingExpression expression = comboBox.GetBindingExpression(ComboBox.SelectedValueProperty);
if (expression != null)
expression.UpdateSource();
expression = comboBox.GetBindingExpression(ComboBox.SelectedItemProperty);
if (expression != null)
expression.UpdateSource();
}
private void OnTextChanged(object sender, TextChangedEventArgs e)
{
TextBox textBox = sender as TextBox;
if (textBox == null)
return;
BindingExpression expression = textBox.GetBindingExpression(TextBox.TextProperty);
if (expression == null)
return;
expression.UpdateSource();
}
0
只是在你设置datagrid的itemssource的类上实现INotifyPropertyChanged。
例如
public class CustomType:INotifyPropertyChanged
{
}
List<CustomType> list=new List<CustomType>();
添加项目
datagrid.ItemsSource=list;
绑定模式=双向
相关问题
- 1. 如何获取绑定以在值更改时进行更新?
- 2. 当底层数据更改时更新Silverlight DataGrid
- 3. 如何在ObserveableCollection属性更改时更新Silverlight中的DataGrid
- 4. WPF Datagrid与数据绑定,更改ItemsSource
- 5. DataGrid在重新绑定新数据存储时不会更新
- 6. 在数据库更改时更新ASP.NET数据绑定GridView
- 7. Silverlight更新绑定
- 8. 绑定集合更新时Wpf datagrid行不更新?
- 9. Silverlight,数据绑定列表然后更改该列表,如何更新?
- 10. 如何在FireBase中更改数据后更新/绑定视图?
- 11. 更新DataGrid更改为数据库?
- 12. 如何在Silverlight的devexpress datagrid中按行绑定数据4
- 13. Silverlight中如何重新绑定的DataGrid
- 14. 更新TextBox绑定到DataGrid
- 15. XAML数据绑定在属性更改时不更新UI
- 16. 控件在绑定数据源更改时没有更新?
- 17. 当DataSource更改时,DataGridRowGroupHeader中的Silverlight绑定不会更新
- 18. WPF DataGrid - 如何挂起数据绑定的UI更新并稍后进行批量更新
- 19. DataGrid,TextBox - 绑定和即时更新
- 20. 使用过时值进行数据绑定更新
- 21. Silverlight绑定不更新
- 22. 强制绑定更新Silverlight
- 23. I18Next&Polymer:更新语言更改时的数据绑定
- 24. 更改绑定数据时DataRepeater不会更新
- 25. 当ObservableCollection值更新时WPF Datagrid绑定不更新
- 26. Wpf DataGrid:在运行时更改XML字段绑定
- 27. Silverlight DataGrid运行时添加和绑定
- 28. 数据绑定在使用{绑定}或{绑定}时未更新
- 29. 在silverlight datagrid中更改特定行的行模板
- 30. 更改Silverlight Datagrid中的行颜色
这并没有回答我的问题。我已经在使用'INotifyPropertyChanged'。当网格改变时,我需要改变发生在相反的方向,对象也应该改变。瞬间,而不必离开牢房。 – Jordan 2011-04-15 19:22:33
如果绑定模式设置TwoWay – Nario 2011-04-15 19:30:58
{绑定路径= PropertyName,Mode = TwoWay} – Nario 2011-04-15 19:31:31