-1

我找不到P1Grid级别移动对属性的引用的方法。

<Grid>
    <Grid.RowDefinitions>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="Auto"/>
    </Grid.RowDefinitions>

    <TextBox Grid.Row="0" Text="{Binding P1.Name}"/>
    <TextBox Grid.Row="1" Text="{Binding P1.Age}"/>
</Grid>

P1DataContext为 Window 设置的 View-Model 实例的属性。它引用具有和属性的Person实例。是否有可能为 ,“改进”这个,以便可以像这样绑定单元格:NameAgeDataContextGrid

<Grid DataContext="P1">
    <TextBox Grid.Row="0" Text="{Binding Name}"/>
    <TextBox Grid.Row="1" Text="{Binding Age}"/>
</Grid>

我正在尝试这样做,以便可以将不同的 Grid 绑定到不同的人(P1,P2,...)。

4

1 回答 1

0

正如@ASh 所建议的那样,正确的语法是使用Binding对象来设置 DataContext。如果两个 Person 实例 P1 和 P2 并排显示,则此代码将起作用:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition/>
        <ColumnDefinition/>
    </Grid.ColumnDefinitions>

    <!-- Binding first grid DataContext to P1 -->
    <Grid Grid.Column="0" DataContext="{Binding P1}">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <TextBox Grid.Row="0" Text="{Binding Name}"/>
        <TextBox Grid.Row="1" Text="{Binding Age}"/>
    </Grid>

    <!-- Binding second grid DataContext to P2 -->
    <Grid Grid.Column="1" DataContext="{Binding P2}">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>

        <TextBox Grid.Row="0" Text="{Binding Name}"/>
        <TextBox Grid.Row="1" Text="{Binding Age}"/>
    </Grid>
</Grid>
于 2019-08-31T08:45:56.250 回答