Tag: 数据绑定

Winforms异步加载大数据?

我刚收到几年前开发的旧应用程序的错误列表,我需要解决的一件事是将数据加载到一个屏幕所需的时间,当然,屏幕被冻结,不幸的是这是在WinForms .NET 4.5中。 数据被加载到WinForms DataGridView中。 我想知道是否有任何方法使用C#5 async加载此数据并等待,同时刷新网格以添加下一组数据。 它可能是在滚动或在后台。任何想法?

如何在WPF中使用用户控件实现数据绑定?

我是WPF的新手,我在使用数据绑定工作时遇到了一些问题。 我编写了一个用户控件,其中包含一个TextBox,我的Text-Property要绑定到UserControl的属性,我想再绑定到其他东西。 我错过了什么? XAML C# // User Control —- public partial class SomeControl : UserControl { public DependencyProperty TheTextProperty = DependencyProperty .Register(“TheText”, typeof (string), typeof (SomeControl)); public string TheText { get { return (string)GetValue(TheTextProperty); } set { SetValue(TheTextProperty, value); } } public SomeControl() { InitializeComponent(); DataContext = this; } } // Window —- public partial […]

如何挂起DataTable通知或数据绑定以防止UI更新

我得到了一个数据连接到DataTable的DataGrid(Infragistic UltraGrid)。 我想在用户单击按钮之前更新DataTable而不显示数据网格上的任何更改。 我已经尝试了以下方法来暂停网格udpate,但它们都不起作用。 可能我真的不明白数据绑定是如何工作的。 ultraGrid.BeginUpdate() – 这是特定于ultraGrid的方法,可以阻止绘制网格。 适用于Aero主题,但如果您在窗口上使用“经典”主题,则网格不会自绘制,因为绘画已暂停。 BindingSource.SuspendBinding() – 这只是暂停UI更改到底层源,而不是其他方面 BindingSource.RaiseListChangedEvent = false – 尝试将其设置为false,但网格仍然自行更新。 Grid.BindingContext = new BindingContext() – 试图查看是否可以删除任何底层绑定以防止网格上的更新。 这根本不起作用,不知道如何使用它 其他想法: ultraGrid.SetDataBinding(null, null) – 它基本上删除了网格上不是我想要的所有信息。 创建快照并覆盖网格 – 这实际上是一个黑客,这是其他人建议的。 我试图避免做这样的黑客攻击。 请注意,在网格更新期间,用户无法访问网格,因为打开了模态窗口。 用户通过此模式窗口更新数据表。 我们的想法是,当用户单击“确定”按钮时,他们将看到网格中的更改。 谢谢

WPF – 在XAML中绑定到后面的代码中创建的对象

可以在代码中创建的对象(即C#)用于XAML中的绑定吗? 例如: public class MyForm { private MyComplexObject complexObject; public MyForm() { InitializeComponent(); } public OnButtonClick(object sender, RoutedEventArgs e) { complexObject = new MyComplexObject(); } } 在单击按钮之前,不会创建complexObject 。 但是一旦单击该按钮,我希望有一个文本框绑定到complexObject.ID开始显示Id。 如果可能的话,我想在XAML中这样做。 可以这样做吗? 如果是这样,怎么样?

WPF ComboBox绑定未正确更新

我的ComboBox中有Binding的更新问题。 我创建了一个简化的例子来说明这个问题。 我将在下面粘贴所有相关代码。 所以在上图中,我有一个TextBlock(黑色),显示SelectedPerson的’SelectedPerson.FullName’属性。 SelectedPerson的FirstName和LastName属性显示在FullName下面的2个TextBox中。 ComboBox DisplayMemberPath绑定到“FullName”,combobox包含Person对象列表。 “FullName”属性在TextBlock,ComboBox和ComboBox下拉列表中应该相同。 但是,它只能在TextBlock中正确更新。 comboBox Dropdown只是在第一次打开时更新,之后不会更新。 因此,如果我在文本框中编辑FirstName并单击下拉列表然后再编辑它并再次单击下拉列表,我们最终会为SelectedPerson显示3个不同的“FullName”值。 我在后面的代码中使用INotifyPropertyChanged来通知“SelectedPerson”的更改。 这似乎可以很好地更新TextBlock,但由于某种原因,ComboBox没有使用新的“FullName”进行更新。 当我发送’SelectedPerson’通知时,我试图发送一个“FullName”通知,但它也没有使它工作。 任何人都能告诉我为什么在更改FirstName文本时ComboBox没有更新? 谢谢。 MainWindow.xaml: MainWindow.xaml.cs: using System.Collections.Generic; using System.ComponentModel; namespace ComboBoxBinding { public partial class MainWindow : INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged; public void OnPropertyChanged(string propertyName) { if (PropertyChanged != null) { PropertyChanged(this, new PropertyChangedEventArgs(propertyName)); } } private List _people […]

Combobox将itemsource绑定到自定义列表,将selecteditem绑定到该列表的实例不起作用

我尝试了不同的方法让我的combobox工作,但我仍然卡住了:( 这是我的应用程序的一个非常简化的版本:(刚编辑,抱歉错误) 而背后的代码: public class Person { private string name; public string Name { get { return name; } set { if (name != value) { name = value; NotifyPropertyChanged(“Name”); } } } private Grade myGrade; public Grade MyGrade { get { return myGrade; } set { if (myGrade != value) { myGrade = value; […]

Windows手机中的多值转换器

我有一个Windows Phone应用程序。 让我们说我有一个CustomersViewModel类来公开客户列表。 我在xaml中有一个绑定到该列表的列表: 因此,列表框中的每个项目都将绑定到单个客户对象。 CustomersViewModel还有一个属性 string StoreId 在我上面的XAML中,我想将StoreId传递给转换器,以及我已经传递的客户对象。 怎么能优雅地做到这一点? 在WP8上似乎不存在IMultiValueConverter,并且不可能对转换器的ConverterParameter进行数据绑定。

绑定复选框列表

我需要一种简单的方法来绑定asp.net /C#的checkboxlist。 我从数据库Id,Name和IsActive中提取了3列。 Id和Name我认为它的名字会很清楚。 并且IsActive将用于显示已选中和未选中的框。 我只想知道, 我可以在数据绑定时使用IsActive绑定子复选框值吗? 例如 cbxlFeatures.DataSource = dt; cbxlFeatures.DataValueField = “Id”; cbxlFeatures.DataTextField = “Name”; // something similar to this cbxlFeatures.SomePropert= “IsActive”; cbxlFeatures.DataBind(); 我知道迭代项目和数据列并比较和放置检查的传统方法。 我需要一些简单而优化的方法…… 谢谢

如何使用WPF绘制二叉树视图?

我想像这样画出它: 我可以在控制台上绘制二叉树。 我想用WPF绘制它。 这是我为控制台编写的代码。 class Program { static void Main(string[] args) { List myBinaryData = new List(); myBinaryData.Add(new BinaryTreeData{ownID=1}); myBinaryData.Add(new BinaryTreeData { parentID=1, ownID = 2 }); myBinaryData.Add(new BinaryTreeData { parentID=1,ownID = 3 }); foreach (var item in myBinaryData) { Console.WriteLine(“{0}——{1}”, item.parentID, item.ownID); } } } class BinaryTreeData : INotifyPropertyChanged { private int _ownID; private […]

排序数据绑定combobox的最佳方法是什么?

我对此进行了一些研究,似乎对数据绑定combobox进行排序的唯一方法是对数据源本身进行排序(在本例中为DataSet中的DataTable)。 如果是这种情况那么问题就变成了对DataTable进行排序的最佳方法是什么? combobox绑定在设计器初始化时使用设置 myCombo.DataSource = this.typedDataSet; myCombo.DataMember = “Table1”; myCombo.DisplayMember = “ColumnB”; myCombo.ValueMember = “ColumnA”; 我试过设置 this.typedDataSet.Table1.DefaultView.Sort = “ColumnB DESC”; 但这没有区别,我已尝试在typedDataSet.Merge调用之前和之后在控件构造函数中设置它。