WPF 中的 TextBlock 控件,后台获取不到他的 Name - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
请不要在回答技术问题时复制粘贴 AI 生成的内容
BadCat
V2EX    程序员

WPF 中的 TextBlock 控件,后台获取不到他的 Name

  •  
  • &nbp; BadCat 2017 年 12 月 7 日 3279 次点击
    这是一个创建于 3024 天前的主题,其中的信息可能已经有所发展或是发生改变。

    第一次接触 wpf,但一上来就要改功能。一脸懵逼百度了一下午,没找到解决方法 求解

    17 条回复    2017-12-07 17:05:17 +08:00
    BadCat
        1
    BadCat  
    OP
       2017 年 12 月 7 日
    BadCat
        2
    BadCat  
    OP
       2017 年 12 月 7 日

    用 FindName 查控件 结果是 null 脑袋大
    yaozhenxing
        3
    yaozhenxing  
       2017 年 12 月 7 日
    好像要加 x:name="jyly" 三年前写过 wpf
    ragnaroks
        4
    ragnaroks  
       2017 年 12 月 7 日
    @yaozhenxing
    x:Name==Name 但 x:Name!==Name

    this.JYLY 能否取到?或者你取的时候,这个窗口的对象是否存在?
    BadCat
        5
    BadCat  
    OP
       2017 年 12 月 7 日
    @yaozhenxing x:Name 也试过了 同样不行
    @ragnaroks 这个 textblock 是在 DataGrid.Columns 里的 窗口对象什么意思 usercontrol 吗
    nannanziyu
        6
    nannanziyu  
       2017 年 12 月 7 日   1
    在 DataTemplate 里,不能这样访问
    用 VisualTreehelper 递归下去找
    添加下面的扩展方法,然后 this.Layout.FindDescendants<TextBlock>().Where(x=>x.Name == "NAME")

    https://gist.github.com/gragrance/df3b78931df27a79801c234a37a39cac
    jitongxi
        7
    jitongxi  
       2017 年 12 月 7 日
    微软的毛玩意出问题很正常.........
    我见识过各种各样的. 写 wpf 的时候
    nannanziyu
        8
    nannanziyu  
       2017 年 12 月 7 日
    @jitongxi
    来把你所有能找到 WPF 的所谓 bug 列出来,我给你一一解答
    BadCat
        9
    BadCat  
    OP
       2017 年 12 月 7 日
    @nannanziyu Name 和 x:Name 查出来的都是 null
    BadCat
        10
    BadCat  
    OP
       2017 年 12 月 7 日
    忘了说了 有 4 个 DataGridTemplateColumn,每个里面结构都是这样的
    <DataGridTemplateColumn Header="检验领域" Width="*">
    <DataGridTemplateColumn.CellTemplate>
    <DataTemplate>
    <TextBlock x:Name="JYLY" Text="{Binding Path=MethodField,
    UpdateSourceTrigger=PropertyChanged}"
    FOntSize="13" Background="Transparent" HorizOntalAlignment="Center"
    VerticalAlignment="Center"/>
    </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    nannanziyu
        11
    nannanziyu  
       2017 年 12 月 7 日
    @BadCat
    首先你要保证元素已经被加载到了可视化树上
    比如你在界面上已经能看到了之后,才能在可视化树上查到
    比如你在构造函数里是查不到的
    nannanziyu
        12
    nannanziyu  
       2017 年 12 月 7 日
    @BadCat
    而且你这样找到元素也没有意义,它作为 Cell,是会根据数据源创建出多个来的
    你应该做的是访问它对应的 ViewModel,然后设 MethodField
    jitongxi
        13
    jitongxi  
       2017 年 12 月 7 日
    @nannanziyu 16 年的时候写的时候, 布局文件的缓存干扰过好几次.
    BadCat
        14
    BadCat  
    OP
       2017 年 12 月 7 日
    @nannanziyu 确实是这样,现在的目的就是给 TextBlock 赋值,但是这个 binding 我又不会用 搞了半天没搞出个头绪,想用.Text 直接给 TextBlock 赋值。。。。现在的话,我觉得我还是继续看下 binding 吧
    nannanziyu
        15
    nannanziyu  
       2017 年 12 月 7 日
    @BadCat
    你去找 DataGrid 设置 ItemSource 的地方
    这个 ItemSource 一定是一个列表,列表的每一个元素就是对应最终表格的一行
    这个元素里对应的 MethodField 被绑定到了 TextBlock 上,你只需要改变 MethodField 的值就可以改变显示的文本了
    nannanziyu
        16
    nannanziyu  
       2017 年 12 月 7 日   1
    @BadCat
    推荐一个 snoop
    https://github.com/cplotts/snoopwpf
    wpf 界面开发必备,查可视化树,动态观察和设置 VM 等等( vs2017 也自带了 Live Visual Tree )
    BadCat
        17
    BadCat  
    OP
       2017 年 12 月 7 日
    @nannanziyu 我去试一下 多谢
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     5318 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 32ms UTC 07:44 PVG 15:44 LAX 00:44 JFK 03:44
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86