首页 > 代码库 > 简单的MVVM的实例
简单的MVVM的实例
在Model层中建一个Person类:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;namespace TestPractice.Model{ public class Person { private string name; public string Name { get { return name; } set { name = value; } } private string age; public string Age { get { return age; } set { age = value; } } public Person(string name, string age) { this.Name = name; this.Age = age; } }}
在Service层中建一个IPersonInformation,IQueryService接口和PersonInformation,QueryService类:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using TestPractice.Model;namespace TestPractice.Service{ interface IPersonInformation { List<Person> GetPersonInformation(); }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using TestPractice.Model;namespace TestPractice.Service{ public class PersonInformation:IPersonInformation { public List<Person> GetPersonInformation() { List<Person> personList = new List<Person>(); personList.Add(new Person("张学健", "19")); personList.Add(new Person("李四", "20")); personList.Add(new Person("王五", "21")); personList.Add(new Person("孙红雷", "22")); return personList; } }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using TestPractice.Model;namespace TestPractice.Service{ interface IQueryService { Person Searching(string up); }}
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using TestPractice.Model;namespace TestPractice.Service{ class QueryService : IQueryService { public Person Searching(string SearchText) { PersonInformation per = new PersonInformation(); List<Person> Members = per.GetPersonInformation(); Person p= new Person("",""); if (!string.IsNullOrEmpty(SearchText)) { foreach (var i in Members) { if (i.Name.Contains(SearchText)) { return i; } } } return p; } }}
在ViewModel中创建一个MainWindowViewModel类:
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading.Tasks;using TestPractice.Model;namespace TestPractice.Service{ class QueryService : IQueryService { public Person Searching(string SearchText) { PersonInformation per = new PersonInformation(); List<Person> Members = per.GetPersonInformation(); Person p= new Person("",""); if (!string.IsNullOrEmpty(SearchText)) { foreach (var i in Members) { if (i.Name.Contains(SearchText)) { return i; } } } return p; } }}
在MainWindow中:
<Window x:Class="TestPractice.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="公司人员查询系统" Height="350" Width="525" WindowStartupLocation="CenterScreen"> <Grid> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <Border BorderBrush="Black" BorderThickness="1" CornerRadius="6" Padding="2" Grid.Row="0"> <StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="公司人员查询系统" FontSize="20" FontFamily="LiShu" TextAlignment="Center" Width="517"/> </StackPanel> </StackPanel> </Border> <Border BorderBrush="Black" BorderThickness="1" CornerRadius="6" Padding="6" Grid.Row="1"> <StackPanel> <StackPanel Orientation="Horizontal"> <TextBlock Text="姓名:" FontSize="15" FontFamily="LiShu" Height="20" /> <TextBox FontSize="15" FontFamily="LiShu" Width="155" Text="{Binding SearchText,Mode=TwoWay}"/> </StackPanel> </StackPanel> </Border> <Border BorderBrush="Black" BorderThickness="1" CornerRadius="6" Padding="6" Grid.Row="2"> <Button Content="查询" FontSize="15" Margin="255,0,167,242" Command="{Binding SeacheringCommand}"/> </Border> <Border BorderBrush="Black" BorderThickness="1" CornerRadius="6" Padding="6" Grid.Row="3"> <StackPanel> <StackPanel Orientation="Horizontal" Height="270"> <TextBlock Text="姓名:" FontSize="15" FontFamily="LiShu" Margin="10,89,0,0" Width="56" Height="31" VerticalAlignment="Top" /> <Label Content="{Binding P.Name,Mode=TwoWay}" FontSize="15" Width="150" Margin="0,77,0,161" RenderTransformOrigin="0.577,0.743"></Label> </StackPanel> </StackPanel> </Border> <Border BorderBrush="Black" BorderThickness="1" CornerRadius="6" Padding="6" Grid.Row="4"> <StackPanel> <StackPanel Orientation="Horizontal" Height="270"> <TextBlock Text="年龄:" FontSize="15" FontFamily="LiShu" Margin="10,164,0,75" Width="56" Height="31" RenderTransformOrigin="2.091,0.55" /> <Label Content="{Binding P.Age,Mode=TwoWay}" FontSize="15" Width="150" Margin="0,153,0,75" RenderTransformOrigin="0.577,0.743"></Label> </StackPanel> </StackPanel> </Border> </Grid></Window>
简单的MVVM的实例
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。