wpf 如何在不指定Path或Datacontext的情况下绑定到字段?

vs91vp4v  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(185)

**注意:**整个源代码包含多个文件和数百行代码,所以我不能在这里发布所有内容。完整的源代码可在此Github Repo

我是WPF的新手,并跟随书籍收集知识。到目前为止,在所有书籍的示例中,我已经看到要么我们需要指定ElementName + Path,要么有一个DataContext进行绑定。
但是在Youtube tutorial(使用Source Code at GIT)中,UI元素直接绑定到字段,没有指定任何DataContext。例如,在下面的代码片段中,TextBoxText属性已经绑定到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>

**问题:**上述绑定是如何工作的?绑定如何知道指定了哪个UsernameHere is the link to the complete source code of the MakeReservatoonView.xaml

sdnqo3pr

sdnqo3pr1#

在App.xaml.cs中,您可以看到MainWindow数据上下文设置为MainViewModel
在主窗口中,您可以

<ContentControl Content="{Binding CurrentViewModel}" />

因此,网格的DataContext是CurrentViewModel
在保留列表视图模型中,MakeReservationCommand将当前视图模型设置为包含用户名属性的MakeReservationViewModel。

相关问题