Juster.Music\MainWindow.xaml.cs
namespace Juster.Music
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
// 设置整个窗口的DataContext,这里假设全局有一个RootViewModel包含了所有子ViewModel
DataContext = new RootViewModel();
}
private void BtnLogin_Click(object sender, RoutedEventArgs e)
{
string a = TxtA.Text;
string p = TxtP.Text;
MessageBox.Show(a);
MessageBox.Show(p);
}
}
}
Juster.Music\MainWindow.xaml
<Window
x:Class="Juster.Music.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Juster.Music"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="MainWindow"
Width="800"
Height="450"
mc:Ignorable="d">
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<StackPanel HorizontalAlignment="Center" Orientation="Horizontal" >
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="账号1:" />
<!-- 绑定 AccountModel-->
<TextBox
Name="TxtA"
Width="300"
Height="30"
Text="{Binding AccountModel.Account}" />
</StackPanel>
<StackPanel
Grid.Row="1"
HorizontalAlignment="Center"
Orientation="Horizontal"
>
<TextBlock
HorizontalAlignment="Center"
VerticalAlignment="Center"
Text="账号2:" />
<!-- 绑定 UserModel-->
<TextBox
Name="TxtP"
Width="300"
Height="30"
Text="{Binding UserModel.Username }"></TextBox>
</StackPanel>
<Button
Name="BtnLogin"
Grid.Row="3"
Width="200"
Height="30"
Click="BtnLogin_Click"
Content="Login" />
</Grid>
</Window>
根Model
Juster.Music\RootModel.cs
using Juster.Common;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace Juster.Music
{
public class RootViewModel
{
private AccountModel _accoutModel;
private UserModel _userModel;
public AccountModel AccountModel { get => _accoutModel; set => _accoutModel = value; }
public UserModel UserModel { get => _userModel; set => _userModel = value; }
public RootViewModel()
{
// 初始化两个子Model
AccountModel = new AccountModel();
UserModel = new UserModel();
}
}
}
两个子Model
Juster.Music\AccountModel.cs
namespace Juster.Music
{
public class AccountModel
{
private string _account;
public string Account
{
get { return _account; }
set
{
_account = value;
}
}
public AccountModel()
{
Account = "root";
}
}
}
Juster.Music\UserModel.cs
namespace Juster.Music
{
public class UserModel
{
private string _username;
public string Username
{
get { return _username; }
set
{
_username = value;
}
}
public UserModel()
{
Username = "admin";
}
}
}