日常生活的交流与学习

首页 新随笔 联系 管理

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";
        }
    }
}


posted on 2024-01-25 20:23  lazycookie  阅读(154)  评论(0编辑  收藏  举报