C# WPF 数据绑定和数据上下文

梦想家

我(C# 和 WPF 中的新手)正在尝试从更多源(类属性)绑定数据,但我对不同的指南和建议感到有些困惑。我想动态添加UsersuserList并同时显示例如最后一个插入和整个列表。这是在源代码的不同位置完成的,但就像我的示例的构造函数一样简单。我应该如何以及在哪里为这三个元素(myName,myTitlemyUserList设置绑定和数据上下文以反映主类属性的变化?我应该每次调用更新绑定目标的函数,还是this.datacontext在编辑属性后设置或者我应该绑定到某个返回我需要的值的函数(如果可能的话)?我对绑定到对象和数据上下文等的属性有点迷茫。这是我所拥有的一个例子:

<Window x:Name="Window" x:Class="WpfTest.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
    xmlns:local="clr-namespace:WpfTest">
  <Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="200"/>
        <ColumnDefinition Width="200"/>
    </Grid.ColumnDefinitions>
    <StackPanel>
      <TextBox x:Name="myName" Text=""  Grid.Column="1"/>
      <TextBox x:Name="myTitle" Text=""  Grid.Column="0"/>
    </StackPanel>
    <ListBox x:Name="myUserList">
    </ListBox>
  </Grid>
</Window>

public partial class MainWindow : Window {
  public User myUser;
  public Dictionary<int,User> userList= new Dictionary<int, User>();

  public object SubWindow { get; private set; }

  public MainWindow() {
    newUser = new User();
    newUser.Title = "John Doe";
    newUser.Name = "Dr.";
    this.userList.Add(index,newUser);
    this.myUser=newUser;
    InitializeComponent();
  }
}

public class User
{
  public String Name { get; set; }
  public String Title { get; set; }
}

感谢您的任何建议。

祝你好运

首先,WPF 在您使用MVVM时效果最佳,总体思路是实现INotifyPropertyChanged,您添加到您的任何项目更改,都会传播到框架并更新您的视图。

使用列表时,请使用ObservableCollection如果要向其动态添加项目,则需要改为修改 ObservableCollection。为了获得最佳结果,在您的 UserControl 中,使用特定类型DataTemplate来显示您的值的格式化版本。

对于第二部分,显示最后添加的项目,有几种方法可以解决这个问题,最好的方法是添加一个可以保存数据的新项目(Grid、Stackpanel 等),使用 Binding 将其值设置为与您的列表(即 ObservableCollection)相同的上下文并创建一个转换器,它将使用 ObservableCollection 作为输入,在您的特定转换器实现中,只需添加最后一项并将其显示到您想要的控件(您可以使用 dataTemplate也为此)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF绑定到数据上下文

来自分类Dev

WPF将内部控件与父数据上下文绑定

来自分类Dev

如何将两个不同的属性绑定到两个不同的数据上下文WPF C#

来自分类Dev

多数据上下文 wpf

来自分类Dev

#c Wpf 数据绑定

来自分类Dev

WPF用户控件:是否可以从内部和外部数据上下文绑定属性?

来自分类Dev

WPF MVVM Light数据绑定上下文菜单以列出视图项

来自分类Dev

WPF用户控件:是否可以从内部和外部数据上下文绑定属性?

来自分类Dev

WPF-如何使用多个数据上下文进行绑定

来自分类Dev

当前上下文和数据绑定

来自分类Dev

WPF上下文菜单命令绑定

来自分类Dev

为特定控件设置WPF数据上下文

来自分类Dev

WPF UI不更新数据上下文更改

来自分类Dev

WPF绑定同一控件的两个依赖项属性,但需要两个数据上下文

来自分类Dev

将多个视图绑定到同一个数据上下文 (WPF-MVVM)

来自分类Dev

与资源和数据上下文的多重绑定

来自分类Dev

数据绑定到属性C#wpf

来自分类Dev

C#WPF DataGrid数据绑定错误

来自分类Dev

基本WPF验证和数据绑定

来自分类Dev

WPF数据上下文可用于设计时间和运行时间

来自分类Dev

在进行数据密集型操作之前,WPF上下文菜单不会完全关闭

来自分类Dev

WPF在同一窗口中更改数据上下文和视图

来自分类Dev

以编程方式自定义 C# WPF 中的上下文菜单项

来自分类Dev

c# MEF 上下文中的 WPF 窗口关闭确认

来自分类Dev

提供的 DependencyObject 不是此 Freezable WPF c# 的上下文

来自分类Dev

如何通过C#而不是WPF进行数据绑定?

来自分类Dev

WPF C#双向数据绑定不起作用

来自分类Dev

C#WPF绑定不从属性获取数据

来自分类Dev

如何在WPF C#中使用数据绑定?

Related 相关文章

热门标签

归档