我正在尝试学习WPF,但我仍然坚持使用最初的绑定示例。 我希望从代码中显示的属性中看到文本框中的文字。我已经看到了一些相关的问题,我已经尝试了他们的答案,但不幸的是,这些都不符合我的需要。此外,如果有人能告诉我一些从基础开始并进入高级水平的好教程。我正在寻找msdn教程,但我发现它们非常复杂(或太多文本)使事情变得更复杂。
MainWindow.xaml.cs
namespace WpfApplication1
{
public partial class MainWindow : Window
{
public string Name { get; set; }
public MainWindow()
{
Name = "Dummy";
InitializeComponent();
DataContext = this;
}
}
}
MainWindow.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>
答案 0 :(得分:1)
属性Name
隐藏了基类的Name
属性(Visual Studio会对此发出警告)。您正在设置新属性,而XAML中的Binding使用基类属性。
选择其他属性名称:
public string MyName { get; set; }
public MainWindow()
{
MyName = "Dummy";
InitializeComponent();
DataContext = this;
}
XAML:
<TextBox Text="{Binding Path=MyName}" />
答案 1 :(得分:0)
要解决此问题,请创建一个新类:
public class MainWindowViewModel
{
public string Name { get; set; }
public MainWindowViewModel()
{
Name = "Dummy";
}
}
并将后面的代码更改为:
public MainWindow()
{
DataContext = new MainWindowViewModel();
InitializeComponent();
}
然后它应该工作。
当您搜索MVVM时,可以在Youtube中找到教程。