首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >用本地datacontext重写父控件的datacontext

用本地datacontext重写父控件的datacontext
EN

Stack Overflow用户
提问于 2014-03-05 19:27:04
回答 1查看 313关注 0票数 0

我有一个Groupbox,其中有多个Textboxes。所有这些Textbox都是从Groupbox的Datacontext派生的,但是组中的一个Textbox需要不同的Datacontext。

代码语言:javascript
复制
<GroupBox Header="My Group" Height="150" Width="1132" DataContext="{Binding ContextA}" >
                                <Grid>
                                    <Label x:Name="lblA"  Content="Policy Number:" Margin="6,12,970,92" />
                                    <TextBox x:Name="txtbA" Margin="155,12,0,0" HorizontalAlignment="Left" Height="24" TextWrapping="Wrap"  Text="{Binding ValueA}" VerticalAlignment="Top" Width="278" Grid.ColumnSpan="2"/>
                                    <Label x:Name="lblB"  Content="Policy Type:" Margin="612,10,334,88" Height="30"/>
                                    <TextBox x:Name="txtbB" Margin="801,12,0,0" HorizontalAlignment="Left" Height="24" TextWrapping="Wrap" DataContext="{Binding ContextB}" Text="{Binding ValueB}" VerticalAlignment="Top" Width="278"/>
                                </Grid>
                            </GroupBox>

在上面的代码中,txtbA使用与Groupbox相同的Datacontext。我希望txtbB有一个单独的Datacontext,即ContextB

但是ContextB并没有分配给txtbB。如何解决这个问题?

注意:ContextAContextB=实体框架模型列表。

EN

回答 1

Stack Overflow用户

发布于 2014-03-05 19:34:21

WPF绑定引擎在current DataContext中查找属性。因此,在您的示例中,绑定引擎在类ContextA中查找属性ContextB,因为textBox从父GroupBox继承了DataContext。

您可以为ContextA使用更详细的定义,如下所示:

代码语言:javascript
复制
<GroupBox Header="My Group" Height="150" Width="1132"
          DataContext="{Binding}"> <-- HERE Or can remove setting DC altogether.
   <Grid>
     <Label x:Name="lblA"  Content="Policy Number:" Margin="6,12,970,92" />
     <TextBox x:Name="txtbA" Margin="155,12,0,0" HorizontalAlignment="Left"
              Height="24" TextWrapping="Wrap"
              Text="{Binding ContextA.ValueA}" <-- HERE
              VerticalAlignment="Top"
              Width="278" Grid.ColumnSpan="2"/>
     <Label x:Name="lblB"  Content="Policy Type:" Margin="612,10,334,88"
            Height="30"/>
     <TextBox x:Name="txtbB" Margin="801,12,0,0" HorizontalAlignment="Left"
              Height="24" 
              TextWrapping="Wrap" DataContext="{Binding ContextB}"
              Text="{Binding ValueB}" VerticalAlignment="Top" Width="278"/>
   </Grid>
</GroupBox>
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/22196378

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档