目前在公司负责java的开发为主,担任着设计+开发的岗位,自己目前也在筹备软考,但是今年不是那么景气,因为疫情,软考没开,暂未拿到软件设计师的证,但在我多次设计出较为成功的软件时,公司已经让我担任设计+开发的岗位,设计的主模块不少了。为了未来,再锻炼锻炼自己吧。
其次,接触了WPF的MVVM模式,我感觉前景不会天乐观,但是市面上很火,鞭炮声大又有什么用,当年EesyUI也很火,然后是bootstrop也很火等等,都被淘汰了。
为什么我越是深入了解MVVM模式,就越感觉看不到希望呢?因为实现繁琐,可能是微软为我们开发者考虑得太多了,多得让我们程序员感觉有点喘不过求,而且我们开发者也不太敢孤注一掷去学,害怕孤注一掷学之后在社会找不到好的工作,因为微软的产品被淘汰的太厉害了。最明显的就是当代的培训机构的教学方向,他们就很少有培训机构去主攻微软的,一般都是java、前端、大数据、php居多的。
但是作为框架来学习,吸取有用的知识倒是很不错的,学习和领悟它内在道理。
回到今天主题:
1.在SQL数据库建立表,数据库无论是SQL、Oracle、mySql,其实差不多的哈,电脑装了SQL,就用SQL吧
2.使用VS,连接数据库。在“工程中”…引入下面那段话
(方式二)当然啦,我们可以使用(引入方式,大家可以自行搜索,我就不累赘了)
3.新建实体
4.新建UserViewModel
public class UserViewModel : System.ComponentModel.INotifyPropertyChanged
{
//构造函数
public UserViewModel(){
//查询,用户信息
this.GetUserMsg();
}
//查询,用户信息
public void GetUserMsg() {
Model.StudentDomeEntities myModel = new Model.StudentDomeEntities();
System.Collections.Generic.List<Model.User>
userMsg = (from a in myModel.t_lwh_sys_user
orderby a.created_date descending
where a.is_enble == "1"
select new Model.User
{
user_id = a.user_id,//用户Id
user_name = a.user_name,//用户名
emp_name = a.emp_name,//员工姓名
password = "******",//密码
is_enble = a.is_enble == "1" ? "有效" : "无效",//是否有效
created_date = a.created_date.ToString(),//创建时间
}).ToList();
_ocUserMsg = userMsg;
}
//接口-通知客户端更改属性
public event System.ComponentModel.PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string propertyName)
{
System.ComponentModel.PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new System.ComponentModel.PropertyChangedEventArgs(propertyName));
}
}
//集合-用户信息
private static System.Collections.Generic.List<Model.User> _ocUserMsg;
public System.Collections.Generic.List<Model.User> ocUserMsg
{
get {
return _ocUserMsg;
}
set {
_ocUserMsg = value;
this.RaisePropertyChanged("ocUserMsg");
}
}
}
代码这一块,我稍微啰嗦一下:
【接口-通知客户端更改属性】这一个是双向绑定的作用,为了实现后端数据变动的同时也改变前端的显示数据,就是刷新的作用。
【集合-用户信息】这个是为给表格设置值,与让表格获取值。
其他的查询就是我们普通的linq查询。
5.绑定前端
<DataGrid x:Name="dataGrid" IsReadOnly="True" AutoGenerateColumns="False"
CanUserResizeColumns="False" CanUserResizeRows="False"
SelectionMode="Single" CanUserReorderColumns="False"
AlternationCount="2" RowHeaderWidth="0" CanUserAddRows="False"
Grid.Row="1" Grid.Column="1" Grid.ColumnSpan="7"
Background="White" BorderBrush="White"
GridLinesVisibility="None" Foreground="#FF5A5A5A"
AlternatingRowBackground="#FFF6F6F6" AreRowDetailsFrozen="True" VerticalAlignment="Top" Margin="0,0,-2,-8"
ItemsSource="{Binding ocUserMsg}">
<DataGrid.Columns>
<!--<DataGridTextColumn Header="ID" Width=".09*" Binding="{Binding PartID}" />-->
<DataGridTemplateColumn Header="ID" Width=".06*" Visibility="Collapsed">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding user_id}" Foreground="#FF5A5A5A" Padding="10"></TextBlock>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="用户ID" Width=".6*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding user_id}" Foreground="#FF5A5A5A" Padding="10"></TextBlock>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="用户名" Width=".6*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding user_name}" Foreground="#FF5A5A5A" Padding="10"></TextBlock>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="真实姓名" Width=".6*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding emp_name}" Foreground="#FF5A5A5A" Padding="10"></TextBlock>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="登录密码" Width=".6*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding password}" Foreground="#FF5A5A5A" Padding="10"></TextBlock>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="是否有效" Width=".2*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding is_enble}" Foreground="#FF5A5A5A" Padding="10"></TextBlock>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="创建时间" Width=".37*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<WrapPanel>
<TextBlock Text="{Binding created_date}" Foreground="#FF5A5A5A" Padding="10"></TextBlock>
</WrapPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
<DataGridTemplateColumn Header="操作" Width=".27*">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Button Content="🖍" Width="35" Height="15" FontSize="8" Padding="1" ToolTip="编辑" />
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>