<Window
x:Class="WPFCoreTest.BindingTest1"
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:WPFCoreTest"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
Title="BindingTest1"
Width="800"
Height="450"
WindowStartupLocation="CenterScreen"
mc:Ignorable="d">
<Grid>
<StackPanel>
<!-- 控件与控件的绑定 -->
<Slider x:Name="slider" Margin="5" />
<TextBox
Height="30"
Margin="5"
Text="{Binding ElementName=slider, Path=Value, Mode=TwoWay}" />
<TextBox
Height="30"
Margin="5"
Text="{Binding Name}" />
<TextBox
Height="30"
Margin="5"
Text="{Binding ElementName=slider, Path=Value, Mode=TwoWay}" />
<Button
x:Name="btnTest"
Width="80"
Height="50"
HorizontalAlignment="Left"
Content="Show"
Command="{Binding ShowCommand}">
</Button>
</StackPanel>
</Grid>
</Window>
后台代码:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
namespace WPFCoreTest
{
/// <summary>
/// BindingTest1.xaml 的交互逻辑
/// </summary>
public partial class BindingTest1 : Window
{
public BindingTest1()
{
InitializeComponent();
//this.DataContext = new Test()
//{
// Name = "张三"
//};
this.DataContext = new ViewModel();
}
private void btnTest_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show("这是一个测试");
}
}
}
ViewModel类的定义:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
namespace WPFCoreTest
{
public class ViewModel
{
public ViewModel()
{
this.Name = "张三";
this.ShowCommand = new MyCommand(Show);
}
public string Name { get; set; }
public MyCommand ShowCommand { get; set; }
public void Show()
{
Name = "点了按钮";
MessageBox.Show("这是接口一个测试!");
}
}
}
MyCommand的定义
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Input;
namespace WPFCoreTest
{
public class MyCommand : ICommand
{
public MyCommand(Action action)
{
this.excuteAction = action;//绑定委托
}
Action excuteAction;
public event EventHandler CanExecuteChanged;
public bool CanExecute(object parameter)
{
return true;
}
public void Execute(object parameter)
{
excuteAction();
}
}
}