Tag: data binding

你如何正确绑定和更新Xamarin.Forms ListView?

使用MVVM模式,我有一个Model,ViewModel和View,它包含一个ListView。 ListView绑定到ViewModel的成员,该成员是Model类的ObservableCollection。 我可以使初始显示的绑定工作,并且可以在作用于视图时更新适当行的Model类的属性,但是我无法刷新视图,从ObservableCollection中的Model类中提取数据。 ListView类不包含使无效或强制刷新的方法,这将解决我的问题。 更新模型上的数据后,如何刷新ListView? 这是我想要做的一个简单示例:每行包含一个Button和Label。 单击按钮后,我可以更新标签,该标签将反映在屏幕上。 我需要做的是更新模型,而模型又会强制更新视图。 但是,我不能让这个工作。 在实际的应用程序中,模型的更新将在业务逻辑层中,而不是在视图中,之后我需要强制刷新ListView。 示例代码: using System; using System.Collections.ObjectModel; using Xamarin.Forms; namespace ListViewTest { public class Model { public static int ids = 0; public Model(string count) { Id = +1; Count = count; } public int Id { get; set; } public string Count { get; set; } […]

WPF双向绑定无法正常工作

我有一个数据上下文( UserPreferences )分配给我的主窗口,以及一个文本框,它双向绑定到上下文中的一个数据上下文属性( CollectionDevice )中的属性。 加载窗口时,文本框不会绑定到模型中的属性。 我在调试器中validation数据上下文是否设置为模型对象,并且正确分配了模型的属性。 然而,我得到的是一系列带有0的文本框。 当我将数据输入文本框时,数据将在模型中更新。 当我加载数据并将其应用于数据上下文时,问题就会发生,文本框不会更新。 当我将模型保存到数据库时,从文本框中保存正确的数据。 当我从数据库恢复模型时,将应用适当的数据。 当模型应用于构造函数中的数据上下文时,文本框的datacontext包含正确的数据,并且它的属性按原样分配。 问题是UI没有反映这一点。 XAML Model < – Datacontext。 /// /// Provides a series of user preferences. /// [Serializable] public class UserPreferences : INotifyPropertyChanged { private CollectionDevice selectedCollectionDevice; public UserPreferences() { this.AvailableCollectionDevices = new List(); var yuma1 = new CollectionDevice { BaudRate = 4800, ComPort […]

WPF – MVVM – ComboBox SelectedItem

我在后台和类Category有ViewModel (实现了INotifyPropertyChanged ),它只有一个string类型的属性。 我的ComboBox SelectedItem绑定到Category的实例。 当我更改实例的值时,SelectedItem没有被更新,并且Combobox没有被更改。 编辑:代码 combobox: 属性: private Category _NodeCategory; public Category NodeCategory { get { return _NodeCategory; } set { _NodeCategory = value; OnPropertyChanged(“NodeCategory”); } } [Serializable] public class Category : INotifyPropertyChanged { private string _Name; [XmlAttribute(“Name”)] public string Name { get { return _Name; } set { _Name = value; OnPropertyChanged(“Name”); […]

UserControl中的依赖项属性绑定

我的解决方案是在MVVM中实现的。 视图是一个托管用户控件的窗口。 我已为此userControl创建了一个依赖项属性,如下所示: public static DependencyProperty ListProperty = DependencyProperty.Register( “ItemsList”, typeof(List), typeof(UsercontrolTest)); public List ItemsList { get { return (List)GetValue(ListProperty); } set { SetValue(ListProperty, value); } } 此属性绑定到xaml中的viewmodel属性(ListOfItems): 此外,我已将codebehind窗口的datacontext初始化为viewmodel。 问题是绑定似乎永远不会发生,并且永远不会为依赖项属性调用set属性。 我在这里错过了什么吗?

将ComboBox的SelectedValue绑定到WPF中的枚举

我想在ListView中显示产品列表,其中一列是我想要绑定的ComboBox 。 这是我的枚举: public enum SelectionMode { One, Two } 和产品类: public class Product { public SelectionMode Mode { get; set; } public string Name { get; set; } } 在ViewModel类中,我有一个Product的ObservableCollection : private ObservableCollection _productList; public ObservableCollection ProductList { get { return _productList; } set { _productList = value; } } public MainViewModel() { ProductList […]

如何使用sql语句中的列绑定dataGridView预定义列(不添加新列)?

有一种优雅的方法,将预定义的dataGridView列与SQL语句的结果绑定在一起吗? 例: dataGridView1.Columns.Add(“EID”, “ID”); dataGridView1.Columns.Add(“FName”, “FirstName”); 有些SQL喜欢 SELECT t.FirstName AS FName, t.EmpID AS EID FROM table t … 然后我打电话 dataGridView1.DataSource = someDataSet.Tables[0].DefaultView; 最后一次调用将列添加到我的数据网格中,但我只想按列名绑定它而不是添加新列。 该示例将给出如下结果: 表列:ID,FirstName,FName,EID(ID和FirstName包含空单元格) 怎么弄这个: Table columns: ID, FirstName or FirstName, ID 最好的祝福!

将DataSource设置为Datagridview后添加一行

我有很多与datagrid的数据源绑定有关的问题。 我有一个DatagridView,我从列表中设置DataSource List li = new List(); MyClass O = new MyClass(); O.Name = “Aden”; O.LastName = “B”; O.Id = 12; li.Add(O); O = new MyClass(); O.Name = “Li”; O.LastName = “S”; O.Id = 22; li.Add(O); Mydgv.DataSource = li; MyClass的地方 public Class MyClass { public string Name {get; set;} public string LastName {get; set;} public […]

在WPF中指定WrapPanel的最大列数

我有一个WrapPanel,我想指定其列的最大数量。 因此,例如,当我的Collection“ObjectCollection”(绑定到此WrapPanel)仅包含4个元素时,WrapPanel将只有一行。 但是,当“ObjectCollection”将有5个元素时,wrapPanel将创建另一行来放置第五个元素。 (在这种情况下,我的Max_Columns_Number为4)。

MVVM中绑定的首选方法,Resources文件中的数据模板或View中的DataContext本身?

这个让我感到难过,因为我想到我看了一切但我必须遗漏一些东西。 我从MSDN杂志中删除了传统的MVVM模式: http://msdn.microsoft.com/en-us/magazine/dd419663.aspx 在学习MVVM的同时。 但是我通常会复制大部分代码,然后根据需要更换它,但今天我想从头开始构建一些东西,看到它可能比我想象的要多。 当我使用资源字典但直接使用datacontext时,MVVM似乎无法使用绑定。 这个问题最终想找到其他开发人员建议使用他们发现的绑定。 问题的摘要是这样的:为什么资源字典中的’DataTemplate’看起来不起作用,但直接’DataContext’方法立即用于绑定视图? 是因为我在后面的代码中使用设置视图混合了代码。 或者可能是因为别的东西。 如果我直接在View的XAML中设置’DataContext’,那么看起来我的属性和它的实现在viewmodel中设置正确,但为什么不在资源字典中呢? 我认为这种方法的优点是你可以同时设置一堆关系。 我很好奇是否需要进行其他设置才能使其正常工作。 在MVVM方法的主要示例中,他们使用数据模板很奇怪但似乎还有更多的设置它们,而不是我正在做的让它们的“绑定”工作。 什么不适合我: 我试图在主窗口xaml中做一些非常基本的东西,留下我的一些代码,使它更简单: 主窗口XAML: 主窗口代码背后: public partial class MainWindow : Window { public MainWindow() { InitializeComponent(); this.WindowState = WindowState.Maximized; } private void mnuDataBoundSeriesMVVMCharting_OnClick(object sender, RoutedEventArgs e) { View.DataBoundMVVMChart c = new DataBoundMVVMChart(); dockchildren.Children.Clear(); dockchildren.Children.Add(c); } } } 资源词典: DataBoundMVVMChart.xaml的视图: ViewModel绑定到上面的View: namespace WPFTesting12_2.ViewModel […]

WPF:更改ComboBox的ItemTemplate会删除在键入时跳转列表的function。 有任何解决这个问题的方法吗?

PersonVM.cs public class MainWindowVM { public MainWindowVM() { PersonList = new ObservableCollection(Employees); } private Person[] Employees = new Person[] { new Person { ID = 1, Name = “Adam” }, new Person { ID = 2, Name = “Bill” }, new Person { ID = 10, Name = “Charlie” }, new Person { ID = […]