首页 新闻 会员 周边

wpf 数据绑定 求解

0
悬赏园豆:10 [已解决问题] 解决于 2017-06-02 16:51
复制代码
<Grid Name="hehe">
        <Border Name="bibi">
            <DataGrid Name="haha" Width="200">
                <DataGrid.ContextMenu>
                    <ContextMenu>
                        <MenuItem Header="{Binding Path=Name, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Grid}}"/>
                        <MenuItem Header="{Binding Path=Name, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Border}}"/>
                        <MenuItem Header="{Binding Path=Name, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=DataGrid}}"/>
                    </ContextMenu>
                </DataGrid.ContextMenu>
            </DataGrid>
        </Border>
        <TextBox Width="100" HorizontalAlignment="Left" Text="{Binding Path=Name, RelativeSource={RelativeSource Mode=FindAncestor,AncestorType=Grid}}"/>
    </Grid>
复制代码

运行结果

3个DataGrid右键菜单项的绑定,一个TextBox的绑定,都是绑定到上级控件的name属性上。

 

上面4各数据绑定,右键菜单上(MenuItem)的3个都绑定失败了,没有数据。最后TextBox的绑定成功了,

绑定语句看了很久没发现不对,有人知道问题出在哪里吗?

绑定语句都是一样的

 

萨尔的主页 萨尔 | 初学一级 | 园豆:20
提问于:2016-12-23 20:05
< >
分享
最佳答案
0

ContextMenu 是Grid的属性,不是子元素,FindAncestor是找不着的吧?你直接绑定name或者x:name吧

收获园豆:10
ensleep | 小虾三级 |园豆:1682 | 2016-12-26 13:40
其他回答(1)
0

ContextMenu 不在 VistualTree 里面,你可以找找相关内容

Yu | 园豆:12980 (专家六级) | 2016-12-24 13:00
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册