基于Stylet框架的SQLite数据库增删改查的WPF程序
项目结构
重要代码部分(个人遇见的问题)
public ObservableCollection<SqlMainModel> sqlmainmodels { get; set; } = new ObservableCollection<SqlMainModel>();
使用ObservableCollection数组来作为Datagrid的数据源,ObservableCollection可以自动更新数据 实时反馈到界面上,不需要手动刷新,直接绑定即可
<DataGridTextColumn
Header="性别"
Binding="{Binding Gender, Converter={StaticResource converterToGender}}"/>
public class ConverterToGender : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null && (Int32)value == 1)
{
return "男";
}
else if (value != null && (Int32)value == 2)
{
return "女";
}
return "未知";
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
if (value != null && value.ToString() == "男")
{
return 1;
}
else if (value != null && value.ToString() == "女")
{
return 2;
}
return 0;
}
}
编写值转换器来显示自己想要的数据 而不是显示原始数据
<Button Content="{Binding btnContent}"
Height="35" Width="120" FontSize="16"
s:View.ActionTarget="{StaticResource SqlChangeViewModel}"
Click="{s:Action btn_Click}" />
s:View.ActionTarget="{StaticResource SqlChangeViewModel}"可以指定接收按钮数据的cs文件是哪个,当不同页面的同一个按钮事件时 可以更少的编写代码来实现功能的复用
public SqlChangeView()
{
InitializeComponent();
this.DataContext = SqlChangeViewModel.sqlchangemodel;
}
当前端View与后端ViewModel进行数据源绑定时,如果数据绑定成功但是数据无法更新传递,则有可能是数据上下文的数据源并不是同一个数据源,这里使用的是静态数据源,也可以使用单例模式创建数据源,避免这个问题
程序源码
https://download.csdn.net/download/qq1084517825/85449463