第一次接触 wpf,但一上来就要改功能。一脸懵逼百度了一下午,没找到解决方法 求解
1
BadCat OP |
2
BadCat OP 用 FindName 查控件 结果是 null 脑袋大 |
3
yaozhenxing 2017-12-07 16:10:50 +08:00
好像要加 x:name="jyly" 三年前写过 wpf
|
4
ragnaroks 2017-12-07 16:13:03 +08:00
|
5
BadCat OP |
6
nannanziyu 2017-12-07 16:19:09 +08:00 1
在 DataTemplate 里,不能这样访问
用 VisualTreehelper 递归下去找 添加下面的扩展方法,然后 this.Layout.FindDescendants<TextBlock>().Where(x=>x.Name == "NAME") https://gist.github.com/gragrance/df3b78931df27a79801c234a37a39cac |
7
jitongxi 2017-12-07 16:21:37 +08:00
微软的毛玩意出问题很正常.........
我见识过各种各样的. 写 wpf 的时候 |
8
nannanziyu 2017-12-07 16:23:27 +08:00
@jitongxi
来把你所有能找到 WPF 的所谓 bug 列出来,我给你一一解答 |
9
BadCat OP @nannanziyu Name 和 x:Name 查出来的都是 null
|
10
BadCat OP 忘了说了 有 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> |
11
nannanziyu 2017-12-07 16:35:54 +08:00
|
12
nannanziyu 2017-12-07 16:41:26 +08:00
|
13
jitongxi 2017-12-07 16:46:58 +08:00
@nannanziyu 16 年的时候写的时候, 布局文件的缓存干扰过好几次.
|
14
BadCat OP @nannanziyu 确实是这样,现在的目的就是给 TextBlock 赋值,但是这个 binding 我又不会用 搞了半天没搞出个头绪,想用.Text 直接给 TextBlock 赋值。。。。现在的话,我觉得我还是继续看下 binding 吧
|
15
nannanziyu 2017-12-07 16:51:59 +08:00
@BadCat
你去找 DataGrid 设置 ItemSource 的地方 这个 ItemSource 一定是一个列表,列表的每一个元素就是对应最终表格的一行 这个元素里对应的 MethodField 被绑定到了 TextBlock 上,你只需要改变 MethodField 的值就可以改变显示的文本了 |
16
nannanziyu 2017-12-07 16:56:15 +08:00 1
@BadCat
推荐一个 snoop https://github.com/cplotts/snoopwpf wpf 界面开发必备,查可视化树,动态观察和设置 VM 等等( vs2017 也自带了 Live Visual Tree ) |
17
BadCat OP @nannanziyu 我去试一下 多谢
|