当前位置: 首页> 教育> 幼教 > 网络平台推广运营_小程序前后端开发_交换友情链接的条件_百度com百度一下你

网络平台推广运营_小程序前后端开发_交换友情链接的条件_百度com百度一下你

时间:2025/9/2 9:18:14来源:https://blog.csdn.net/m0_51005282/article/details/142259404 浏览次数:0次
网络平台推广运营_小程序前后端开发_交换友情链接的条件_百度com百度一下你

WPF DataGrid 赋值与修改

下方绑定给 DataGrid 控件的类模型
public record DataGridModel{public string GongNeng{get; set;}public DataGridModel(string gongNeng){GongNeng = gongNeng;}}

一、DataGrid 绑定对应的属性

DataGrid 绑定列,将对应的属性绑定给对应的列
写法:Binding="{Binding 属性名}"  
<DataGrid.Columns><!--ElementStyle 设置元素样式--><DataGridTextColumn Header="功能" Width="*" Binding="{Binding GongNeng}"></DataGridTextColumn>
</DataGrid.Columns>

二、为 DataGrid 赋值

方法一
  再 cs 文件中直接给对应的 DataGrid 控件赋数据源

...
public List<DataGridModel> DataGridModels { get; set; }
...
//我这里 DataGrid 控件 Name 为 main_datagrid_display
main_datagrid_display.ItemsSource = DataGridModels;
...

方法二:
  再 xaml 文件中直接给对应的 DataGrid 控件赋数据源
  情况一:
   ItemsSource=“{Binding RelativeSource={RelativeSource AncestorType=对应数据源路径},Path=对应数据源名称}”
   如果这里数据源在父类、或者父类的父类、或者其他类中等等,需要将对应的路径指定正确

<DataGrid Name="main_datagrid_display" Width="1268" Height="193"  ItemsSource="{Binding RelativeSource={RelativeSource AncestorType=local:MainBody},Path=DataGridModels}">
...            
</DataGrid>

情况二:
  ItemsSource=“{Binding 对应数据源名称}”
  情况一简写写法,但是必须在 cs 文件中加上
    this.DataContext = 对应数据源路径;
  正常情况下,我们会书写一个视图,将所有的数据处理都放在那个视图当中,这时数据源属性也会定义在该视图中,所有对数据的操作也会在该视图中,但是需要将 this.DataContext 赋值为该视图对象

在这里插入代码片```csharp
//cs 文件
InitializeComponent();
//一般写在 InitializeComponent() 方法下面,我这里没有使用 MVVM 模式,所有的数据处理都在该 cs 文件中,所以指定为 this
this.DataContext =  this;
//xaml 文件
<DataGrid Name="main_datagrid_display" Width="1268" Height="193"  ItemsSource="{Binding DataGridModels}">
</DataGrid>

三、修改 DataGrid 数据

  当内部数据源修改时,如果需要前端页面也跟着一起修改,需要继承 INotifyPropertyChanged 接口,并实现 PropertyChanged 事件
  我们这里对上面的类模型进行修改:

public record DataGridModel : INotifyPropertyChanged
{private string _gongNeng;public string GongNeng{get { return _gongNeng; }set{if (value != _gongNeng){_gongNeng = value;if (null != PropertyChanged){PropertyChanged(this, new PropertyChangedEventArgs("GongNeng"));//当被改变时,告知前端页面}}}}public DataGridModel(string gongNeng){GongNeng = gongNeng;}public event PropertyChangedEventHandler? PropertyChanged;//实现 PropertyChanged 事件}

  如果绑定的属性是一个集合的话,也可以使用 WPF 自带的 ObservableCollection 集合,其内部帮我们实现了 INotifyCollectionChanged, INotifyPropertyChanged,当后台数据改变时,会自动帮我们更新前端的数据。
    但是使用 ObservableCollection 需要注意要为其初始化一个对象,否则会出现后端数据变了,前端数据不变化的情况,且 ObservableCollection 只有在新增或者删除一条数据的时候,才回去通知前端

ObservableCollection<string> Test { get; set; } = new ObservableCollection<string>();//需要为其初始化

  上述均是前后端不分离的情况,如果使用 MVVM 方式去书写,需要定义对应的模型视图等等,数据处理全部在视图中进行。。。

关键字:网络平台推广运营_小程序前后端开发_交换友情链接的条件_百度com百度一下你

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: