gpt4 book ai didi

c# - 如何使用 MVVM 模式绑定(bind) Datagrid?

转载 作者:行者123 更新时间:2023-12-03 10:31:08 29 4
gpt4 key购买 nike

目标:
我目前的目标是连接 Datagrid 和 ViewModel。 ViewModel 当前具有从 MySQL 获取数据的代码。
不知道从这里去哪里,或者我是否做得正确......
技术_Fsqm.xaml

<Grid>
<TextBlock Text="FSQM"/>
<DataGrid x:Name="FSQMData"
AutoGenerateColumns="True"
ItemsSource="{Binding data}" Margin="0,106,0,0"/>
</Grid>
Technical_Fsqm.xaml.cs
public partial class Technical_Fsqm : UserControl
{
public Technical_Fsqm()
{
InitializeComponent();
this.DataContext = new Technical_FsqmVM();
}
}
技术_FsqmVM.cs
using Dapper;

public class Technical_FsqmVM : INotifyPropertyChanged
{

public List<FsqmModel> data()
{
string query = "select * from table;";

using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString))
{
var output = conn.Query<FsqmModel>(query).ToList();

return output;
}
}


public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
型号
public class FsqmModel
{
public int Id { get; set; }
public string DocumentTitle { get; set; }

}

最佳答案

无法使用方法创建绑定(bind),只能使用属性:

public partial class Technical_Fsqm : UserControl
{
public Technical_Fsqm()
{
InitializeComponent();
var vm = new Technical_FsqmVM();
vm.LoadData();
this.DataContext = vm;
}
}
虚拟机
public List<FsqmModel> data { get; private set; }

public void LoadData();
{
string query = "select * from table;";

using (MySqlConnection conn = new MySqlConnection(ConfigurationManager.ConnectionStrings["MySQL"].ConnectionString))
{
data = conn.Query<FsqmModel>(query).ToList();
}
}

关于c# - 如何使用 MVVM 模式绑定(bind) Datagrid?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65307559/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com