如何在本地优化网格的数据上下文?



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

<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>

P1是设置为窗口DataContext的视图模型实例的属性。它引用具有NameAge属性的Person实例。是否有可能为Grid"提炼"这个DataContext,以便细胞可以像这样绑定:

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

我正在尝试这样做,以便不同的网格可以绑定到不同的人(P1,P2,...

正如@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>

最新更新