├── .gitignore ├── LICENSE ├── README.md ├── WPF-Samples ├── MVVM-TimLiu │ ├── CrazyElephant │ │ ├── .vs │ │ │ └── CrazyElephant │ │ │ │ └── v16 │ │ │ │ └── .suo │ │ ├── CrazyElephant.Client │ │ │ ├── App.xaml │ │ │ ├── App.xaml.cs │ │ │ ├── CrazyElephant.Client.csproj │ │ │ ├── Data │ │ │ │ └── Data.xml │ │ │ ├── MainWindow.xaml │ │ │ ├── MainWindow.xaml.cs │ │ │ ├── Models │ │ │ │ ├── Dish.cs │ │ │ │ └── Restaurant.cs │ │ │ ├── Properties │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ ├── Resources.Designer.cs │ │ │ │ ├── Resources.resx │ │ │ │ ├── Settings.Designer.cs │ │ │ │ └── Settings.settings │ │ │ ├── Services │ │ │ │ ├── IDataService.cs │ │ │ │ ├── IOrderService.cs │ │ │ │ ├── MockOrderService.cs │ │ │ │ └── XmlDataService.cs │ │ │ ├── ViewModels │ │ │ │ ├── DishMenuItemViewModel.cs │ │ │ │ └── MainWindowViewModel.cs │ │ │ ├── bin │ │ │ │ └── Debug │ │ │ │ │ ├── CrazyElephant.Client.exe │ │ │ │ │ ├── CrazyElephant.Client.pdb │ │ │ │ │ ├── CrazyElephant.Client.vshost.exe │ │ │ │ │ ├── CrazyElephant.Client.vshost.exe.manifest │ │ │ │ │ ├── Data │ │ │ │ │ └── Data.xml │ │ │ │ │ └── Microsoft.Practices.Prism.dll │ │ │ └── obj │ │ │ │ └── x86 │ │ │ │ └── Debug │ │ │ │ ├── App.g.cs │ │ │ │ ├── App.g.i.cs │ │ │ │ ├── CrazyElephant.Client.Properties.Resources.resources │ │ │ │ ├── CrazyElephant.Client.csproj.CopyComplete │ │ │ │ ├── CrazyElephant.Client.csproj.CoreCompileInputs.cache │ │ │ │ ├── CrazyElephant.Client.csproj.FileListAbsolute.txt │ │ │ │ ├── CrazyElephant.Client.csproj.GenerateResource.cache │ │ │ │ ├── CrazyElephant.Client.csprojAssemblyReference.cache │ │ │ │ ├── CrazyElephant.Client.exe │ │ │ │ ├── CrazyElephant.Client.g.resources │ │ │ │ ├── CrazyElephant.Client.pdb │ │ │ │ ├── CrazyElephant.Client_Content.g.cs │ │ │ │ ├── CrazyElephant.Client_Content.g.i.cs │ │ │ │ ├── CrazyElephant.Client_MarkupCompile.cache │ │ │ │ ├── CrazyElephant.Client_MarkupCompile.i.cache │ │ │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ ├── MainWindow.baml │ │ │ │ ├── MainWindow.g.cs │ │ │ │ ├── MainWindow.g.i.cs │ │ │ │ └── TempPE │ │ │ │ └── Properties.Resources.Designer.cs.dll │ │ ├── CrazyElephant.sln │ │ ├── CrazyElephant.sln.docstates.suo │ │ └── CrazyElephant.suo │ ├── SimpleMvvmDemo │ │ ├── .vs │ │ │ └── SimpleMvvmDemo │ │ │ │ └── v16 │ │ │ │ └── .suo │ │ ├── NewUI.txt │ │ ├── OldUI.txt │ │ ├── SimpleMvvmDemo.Client │ │ │ ├── App.xaml │ │ │ ├── App.xaml.cs │ │ │ ├── Commands │ │ │ │ └── DelegateCommand.cs │ │ │ ├── MainWindow.xaml │ │ │ ├── MainWindow.xaml.cs │ │ │ ├── Properties │ │ │ │ ├── AssemblyInfo.cs │ │ │ │ ├── Resources.Designer.cs │ │ │ │ ├── Resources.resx │ │ │ │ ├── Settings.Designer.cs │ │ │ │ └── Settings.settings │ │ │ ├── SimpleMvvmDemo.Client.csproj │ │ │ ├── ViewModels │ │ │ │ ├── MainWindowViewModel.cs │ │ │ │ └── NotificationObject.cs │ │ │ ├── bin │ │ │ │ └── Debug │ │ │ │ │ ├── SimpleMvvmDemo.Client.exe │ │ │ │ │ ├── SimpleMvvmDemo.Client.pdb │ │ │ │ │ ├── SimpleMvvmDemo.Client.vshost.exe │ │ │ │ │ └── SimpleMvvmDemo.Client.vshost.exe.manifest │ │ │ └── obj │ │ │ │ └── x86 │ │ │ │ └── Debug │ │ │ │ ├── App.g.cs │ │ │ │ ├── App.g.i.cs │ │ │ │ ├── DesignTimeResolveAssemblyReferences.cache │ │ │ │ ├── DesignTimeResolveAssemblyReferencesInput.cache │ │ │ │ ├── MainWindow.baml │ │ │ │ ├── MainWindow.g.cs │ │ │ │ ├── MainWindow.g.i.cs │ │ │ │ ├── SimpleMvvmDemo.Client.Properties.Resources.resources │ │ │ │ ├── SimpleMvvmDemo.Client.csproj.CoreCompileInputs.cache │ │ │ │ ├── SimpleMvvmDemo.Client.csproj.FileListAbsolute.txt │ │ │ │ ├── SimpleMvvmDemo.Client.csproj.GenerateResource.cache │ │ │ │ ├── SimpleMvvmDemo.Client.csprojAssemblyReference.cache │ │ │ │ ├── SimpleMvvmDemo.Client.exe │ │ │ │ ├── SimpleMvvmDemo.Client.g.resources │ │ │ │ ├── SimpleMvvmDemo.Client.pdb │ │ │ │ ├── SimpleMvvmDemo.Client_MarkupCompile.cache │ │ │ │ ├── SimpleMvvmDemo.Client_MarkupCompile.i.cache │ │ │ │ └── TempPE │ │ │ │ └── Properties.Resources.Designer.cs.dll │ │ ├── SimpleMvvmDemo.sln │ │ ├── SimpleMvvmDemo.sln.docstates.suo │ │ └── SimpleMvvmDemo.suo │ └── screenshots │ │ ├── MVVM-Add.png │ │ └── OrderSystem.png └── README.md ├── courseware ├── README.md └── 深入浅出UWP-slides │ ├── 深入浅出UWP-slides01.pdf │ ├── 深入浅出UWP-slides02.pdf │ ├── 深入浅出UWP-slides03.pdf │ ├── 深入浅出UWP-slides04.pdf │ ├── 深入浅出UWP-slides05.pdf │ └── 深入浅出UWP-slides06.pdf └── videos └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | ################################################################################ 2 | # 此 .gitignore 文件已由 Microsoft(R) Visual Studio 自动创建。 3 | ################################################################################ 4 | 5 | /WPF-Samples/MVVM-TimLiu/SimpleMvvmDemo/.vs/SimpleMvvmDemo/v16/Server/sqlite3/storage.ide-wal 6 | /WPF-Samples/MVVM-TimLiu/SimpleMvvmDemo/.vs/SimpleMvvmDemo/v16/Server/sqlite3/storage.ide-shm 7 | /WPF-Samples/MVVM-TimLiu/SimpleMvvmDemo/.vs/SimpleMvvmDemo/v16/Server/sqlite3/storage.ide 8 | /WPF-Samples/MVVM-TimLiu/SimpleMvvmDemo/.vs/SimpleMvvmDemo/v16/Server/sqlite3/db.lock 9 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 Bravo Yeung 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## WPF_in-depth_explanation / Dissecting WPF / WPF inside out 2 | 3 | 此处会给出《深入浅出WPF》一书的相关资源(Code、视频、课件、公开课等),并不断更新~ 4 | 5 |
6 | 7 | 欢迎访问作者的个人网站: [极客玩家](https://yanglr.github.io/) 8 | -------------------------------------------------------------------------------- /WPF-Samples/MVVM-TimLiu/CrazyElephant/.vs/CrazyElephant/v16/.suo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/yanglr/wpf_in-depth_explanation/e82d55259bf729bf72cfce3204b7d51bb242ca8e/WPF-Samples/MVVM-TimLiu/CrazyElephant/.vs/CrazyElephant/v16/.suo -------------------------------------------------------------------------------- /WPF-Samples/MVVM-TimLiu/CrazyElephant/CrazyElephant.Client/App.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /WPF-Samples/MVVM-TimLiu/CrazyElephant/CrazyElephant.Client/App.xaml.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Configuration; 4 | using System.Data; 5 | using System.Linq; 6 | using System.Windows; 7 | 8 | namespace CrazyElephant.Client 9 | { 10 | /// 11 | /// Interaction logic for App.xaml 12 | /// 13 | public partial class App : Application 14 | { 15 | } 16 | } 17 | -------------------------------------------------------------------------------- /WPF-Samples/MVVM-TimLiu/CrazyElephant/CrazyElephant.Client/CrazyElephant.Client.csproj: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | Debug 5 | x86 6 | 8.0.30703 7 | 2.0 8 | {7DE85C2B-CB42-45AE-9DC7-C9685F65FEB2} 9 | WinExe 10 | Properties 11 | CrazyElephant.Client 12 | CrazyElephant.Client 13 | v4.0 14 | Client 15 | 512 16 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC} 17 | 4 18 | 19 | 20 | x86 21 | true 22 | full 23 | false 24 | bin\Debug\ 25 | DEBUG;TRACE 26 | prompt 27 | 4 28 | 29 | 30 | x86 31 | pdbonly 32 | true 33 | bin\Release\ 34 | TRACE 35 | prompt 36 | 4 37 | 38 | 39 | 40 | ..\..\..\..\..\..\..\Program Files (x86)\Microsoft Prism\Bin\Desktop\Microsoft.Practices.Prism.dll 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 4.0 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | MSBuild:Compile 59 | Designer 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | MSBuild:Compile 70 | Designer 71 | 72 | 73 | App.xaml 74 | Code 75 | 76 | 77 | MainWindow.xaml 78 | Code 79 | 80 | 81 | 82 | 83 | 84 | Code 85 | 86 | 87 | True 88 | True 89 | Resources.resx 90 | 91 | 92 | True 93 | Settings.settings 94 | True 95 | 96 | 97 | ResXFileCodeGenerator 98 | Resources.Designer.cs 99 | 100 | 101 | SettingsSingleFileGenerator 102 | Settings.Designer.cs 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | Always 112 | 113 | 114 | 115 | 122 | -------------------------------------------------------------------------------- /WPF-Samples/MVVM-TimLiu/CrazyElephant/CrazyElephant.Client/Data/Data.xml: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 土豆泥底披萨 5 | 披萨 6 | 本店特色 7 | 4.5 8 | 9 | 10 | 烤囊底披萨 11 | 披萨 12 | 本店特色 13 | 5 14 | 15 | 16 | 水果披萨 17 | 披萨 18 | 19 | 4 20 | 21 | 22 | 牛肉披萨 23 | 披萨 24 | 25 | 5 26 | 27 | 28 | 培根披萨 29 | 披萨 30 | 31 | 4.5 32 | 33 | 34 | 什锦披萨 35 | 披萨 36 | 37 | 4.5 38 | 39 | 40 | 金枪鱼披萨 41 | 披萨 42 | 43 | 5 44 | 45 | 46 | 海鲜披萨 47 | 披萨 48 | 49 | 5 50 | 51 | 52 | 川香披萨 53 | 披萨 54 | 55 | 4.5 56 | 57 | 58 | 黑椒鸡腿扒 59 | 特色主食 60 | 本店特色 61 | 5 62 | 63 | 64 | 肉酱意面 65 | 特色主食 66 | 本店特色 67 | 5 68 | 69 | 70 | 寂寞小章鱼 71 | 风味小吃 72 | 73 | 5 74 | 75 | 76 | 照烧鸡软骨 77 | 风味小吃 78 | 79 | 5 80 | 81 | 82 | 芝士青贝 83 | 风味小吃 84 | 85 | 4.5 86 | 87 | 88 | 奥尔良烤翅 89 | 风味小吃 90 | 秒杀KFC 91 | 5 92 | 93 | 94 | 双酱煎泥肠 95 | 风味小吃 96 | 97 | 4 98 | 99 | 100 | 香酥鱿鱼圈 101 | 风味小吃 102 | 本店特色 103 | 4.5 104 | 105 | 106 | 黄金蝴蝶虾 107 | 风味小吃 108 | 本店特色 109 | 5 110 | 111 | 112 | 金枪鱼沙拉 113 | 沙拉 114 | 本店特色 115 | 5 116 | 117 | 118 | 日式素沙拉 119 | 沙拉 120 | 121 | 5 122 | 123 | 124 | 冰糖洛神 125 | 饮料 126 | 127 | 5 128 | 129 | 130 | 玫瑰特饮 131 | 饮料 132 | 133 | 5 134 | 135 | 136 | 清新芦荟 137 | 饮料 138 | 139 | 5 140 | 141 | 142 | 薄荷汽水 143 | 饮料 144 | 本店特色 145 | 5 146 | 147 | -------------------------------------------------------------------------------- /WPF-Samples/MVVM-TimLiu/CrazyElephant/CrazyElephant.Client/MainWindow.xaml: -------------------------------------------------------------------------------- 1 |  5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 |