C# 数据绑定没有错误,但无法查看绑定的输出

C# 数据绑定没有错误,但无法查看绑定的输出,c#,wpf,xaml,C#,Wpf,Xaml,我正在尝试学习WPF,我被最初的绑定示例困住了我想查看代码中属性文本框中的文本。我看到了一些相关问题,并尝试了他们的答案,但不幸的是,没有一个符合我的需要。此外,如果有人能告诉我一些很好的教程,从基础到高级。我正在看msdn教程,但我发现它们非常复杂(或文本太多),使事情变得更加复杂 MainWindow.xaml.cs namespace WpfApplication1 { public partial class MainWindow : Window {

我正在尝试学习WPF,我被最初的绑定示例困住了我想查看代码中属性文本框中的文本。我看到了一些相关问题,并尝试了他们的答案,但不幸的是,没有一个符合我的需要。此外,如果有人能告诉我一些很好的教程,从基础到高级。我正在看msdn教程,但我发现它们非常复杂(或文本太多),使事情变得更加复杂

MainWindow.xaml.cs

namespace WpfApplication1
{     
    public partial class MainWindow : Window
    {
        public string Name { get; set; }

        public MainWindow()
        {
            Name = "Dummy";
            InitializeComponent();
            DataContext = this;


        }
    }
}
main window.xaml

 <Window x:Class="WpfApplication1.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:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
            xmlns:local="clr-namespace:WpfApplication1"
            mc:Ignorable="d"
            Title="MainWindow" Height="350" Width="525">
        <Grid>
            <TextBox Text="{Binding Path=Name}"></TextBox>
        </Grid>
    </Window>

属性
Name
隐藏基类的
Name
属性(Visual Studio会就此发出警告)。您正在设置新属性,而XAML中的绑定使用基类属性

请选择其他属性名称:

public string MyName { get; set; }

public MainWindow()
{
    MyName = "Dummy";
    InitializeComponent();
    DataContext = this;
}
XAML:


要解决此问题,请创建一个新类:

public class MainWindowViewModel
{
    public string Name { get; set; }

    public MainWindowViewModel()
    {
        Name = "Dummy";
    }

}
并将后面的代码更改为:

    public MainWindow()
    {
        DataContext = new MainWindowViewModel();

        InitializeComponent();
    }
那么它应该会起作用


搜索MVVM时,您可以在Youtube上找到教程。

下一步是使用视图模型类,如另一个答案所示。是的,这也有效,但我只能将其中一个标记为答案,我没有足够的分数投票给您。谢谢你的回复!没问题:-)我很高兴能帮助你
    public MainWindow()
    {
        DataContext = new MainWindowViewModel();

        InitializeComponent();
    }