一.XML

<Page
x:Class="MVVM.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:MVVM"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d" > <Grid Background="{ThemeResource ApplicationPageBackgroundThemeBrush}">
<Grid.RowDefinitions>
<RowDefinition Height="120*"></RowDefinition>
<RowDefinition Height="500*"></RowDefinition> </Grid.RowDefinitions>
<!--<Grid.ColumnDefinitions>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
<ColumnDefinition></ColumnDefinition>
</Grid.ColumnDefinitions>-->
<StackPanel Grid.Row="0">
//绑定数据源 绑定的事viewModel的公有字段
<TextBlock Text="{Binding Path=Title1}" FontSize="30"></TextBlock>
<TextBlock Text="{Binding Path=Title2}" FontSize="60"></TextBlock> </StackPanel>
<Grid x:Name="contentRoot"/>
<ListView Grid.Row="1" ItemsSource="{Binding Collection}" Margin="10,10,-10,10">
<ListView.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Name}" FontSize="40" Margin="0 ,0,20,0" />
<TextBlock Text="{Binding Gender}" FontSize="40" Margin="0 ,0,20,0" />
<TextBlock Text="{Binding Age}" FontSize="40" Margin="0 ,0,20,0" />
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
</Grid>
</Page> 二、Model
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace MVVM
{
public class PersonModel
{
public string Name { get; set; }
public char Gender { get; set; }
public int Age { get; set; }
}
}

三、ViewModel

using System;
using System.Collections.Generic;
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Linq;
using System.Text;
using System.Threading.Tasks; namespace MVVM
{
//要实现通知 ——>就要实现INotifyPropertyChanged
public class PersonViewModel:INotifyPropertyChanged
{
private string title1;
private string title2;
public PersonViewModel(){}
public PersonViewModel(string Title1, string Title2, IEnumerable<PersonModel> collection)
{
this.title1 = Title1;
this.title2 = Title2;
Collection = new ObservableCollection<PersonModel>();
foreach (var item in collection)
{
Collection.Add(item); } }
//实现接口 + 处理方法
public event PropertyChangedEventHandler PropertyChanged;
private void EventHendle(string propertyNanme)
{
if (PropertyChanged != null)
{
PropertyChanged(this,new PropertyChangedEventArgs (propertyNanme));
}
} public string Title1 { get { return title1; }set { Title1 = value;EventHendle(Title1);}}
public string Title2 { get{return title2;} set{Title2=title2;EventHendle(Title2);}} public ObservableCollection<PersonModel> Collection { get; set; } }
}
结果如下:

MVVM代码记录,来自传智播客公开课

MVVM 代码记录的更多相关文章

  1. Echarts基于动态数据初步使用 及问题 代码记录.

    ECHARTS 插件 基本的动态数据展示(横向图) 下载 echarts.commn.min.js文件 在页面中进行引用, 并为Echarts图形准备一个div盒子 <!-- 引入插件 --&g ...

  2. OpenCV学习代码记录——人脸检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  3. OpenCV学习代码记录—— Snake轮廓

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  4. OpenCV学习代码记录——Hough线段检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  5. OpenCV学习代码记录——轮廓(contour)检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  6. OpenCV学习代码记录——canny边缘检测

    很久之前学习过一段时间的OpenCV,当时没有做什么笔记,但是代码都还在,这里把它贴出来做个记录. 代码放在码云上,地址在这里https://gitee.com/solym/OpenCVTest/tr ...

  7. JSP标签使用的代码记录——《%= %》(神奇的CSDN为啥标题不让打英文的尖括号)

    关于JSP的一些标签,在用到的时候有些生疏,就去找了找资源重新温习了一下. 附上两个JSP<%= %>标签的博客,同时也记录当前项目里用到的方法. jsp页面中<%@ %>.& ...

  8. Shiro权限验证代码记录,正确找到shiro框架在什么地方做了权限识别

    权限验证方式的验证代码: org.apache.shiro.web.servlet.AdviceFilter这个类是所有shiro框架提供的默认权限验证实例类的父类 验证代码: public void ...

  9. CSS代码记录

    1. 内容横向滚动的代码 .ul { display: box; display: -webkit-box; width: 250px; background: yellow; overflow-y: ...

随机推荐

  1. mvvm结构中数据的关联----wpf

    1.在视图中PlotView.xaml <Button Content="<<" Height="23" HorizontalAlignmen ...

  2. 9、XAML名称空间详解

    XAML命名空间 <Window xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"      ...

  3. backbone前端基础框架搭建

    前端站点名为:site: 前端框架分为:css.js和img,框架的核心在js文件夹下: js中包括collections.models.views.lib和一个app入口js

  4. 自定义Adapter

    --MainActivity代码 package com.example.qqdemo; import java.util.ArrayList; import java.util.List; impo ...

  5. Daject初探 - 从Table模型得到Record模型

    前言: 如果你还不知道Daject是什么,如何使用,可以浏览 http://www.cnblogs.com/kason/p/3577359.html github地址:https://github.c ...

  6. 【BZOJ 2132】 圈地计划

    Description 最近房地产商GDOI(Group of Dumbbells Or Idiots)从NOI(Nuts Old Idiots)手中得到了一块开发土地.据了解,这块土地是一块矩形的区 ...

  7. Error: Cannot find module 'express'

    安装Express命令如下: npm install -g express 安装成功之后会在C:\Users\[YOUR_USER_NAME]\AppData\Roaming\npm\node_mod ...

  8. 贱贱的美团安卓客户端---如何实现让安卓app在应用列表获得较靠前的位置

    起因: 自打愚安我开始使用android设备以来,一直觉得google还算厚道,应用列表里的顺序一直都是依据APP的名称,按照先中文(拼音字母表顺序),后英文(字母表顺序)的原则进行排序的,并没有说G ...

  9. ProgressDialog弹出时的底色变暗(转)

    背景:在做一个进度条时,不想让它的背景变暗,以免影响其他区域的正常显示. 在网上搜索时,看到的方法多数是: 方法一 :在代码中 可以这么设置 Window mWindow = getWindow(); ...

  10. 来吧,给你的Winform列表控件画个妆

    前言 以前看别人的控件好看只有羡慕的份:以前觉得控件重绘是个很复杂的东西:以前知道MSDN很全面很专业却一直没有好好用起来: 作为初级程序猿,不能原地踏步,来吧,让我们一起把 TreeView 美化一 ...