**注意:**整个源代码包含多个文件和数百行代码,所以我不能在这里发布所有内容。完整的源代码可在此Github Repo
我是WPF的新手,并跟随书籍收集知识。到目前为止,在所有书籍的示例中,我已经看到要么我们需要指定ElementName + Path
,要么有一个DataContext进行绑定。
但是在Youtube tutorial(使用Source Code at GIT)中,UI元素直接绑定到字段,没有指定任何DataContext。例如,在下面的代码片段中,TextBox
的Text
属性已经绑定到Username
,没有指定任何DataContext或Path:
<Grid Grid.Row="1" Margin="0 25 0 0">
<Grid.RowDefinitions>
<RowDefinition Height="auto" />
<RowDefinition Height="auto" />
</Grid.RowDefinitions>
<TextBlock Grid.Row="0" Text="Username" />
<TextBox
Grid.Row="1"
Margin="0 5 0 0"
Text="{Binding Username, UpdateSourceTrigger=PropertyChanged}" />
</Grid>
**问题:**上述绑定是如何工作的?绑定如何知道指定了哪个Username
?Here is the link to the complete source code of the MakeReservatoonView.xaml
1条答案
按热度按时间sdnqo3pr1#
在App.xaml.cs中,您可以看到MainWindow数据上下文设置为
MainViewModel
。在主窗口中,您可以
因此,网格的DataContext是CurrentViewModel
在保留列表视图模型中,MakeReservationCommand将当前视图模型设置为包含用户名属性的MakeReservationViewModel。