首页 新闻 会员 周边

wpf 数据绑定问题

0
[已解决问题] 解决于 2019-06-05 09:52

<Style x:Key="jindutiao" TargetType="{x:Type ProgressBar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ProgressBar}">
<Grid Width="300" Height="300">
<Border CornerRadius="500" Width="200" Height="200" BorderThickness="3" BorderBrush="#00FF00"></Border>
<Border CornerRadius="500" Width="100" Height="100" BorderThickness="3" BorderBrush="#00FF00"></Border>
<Path Stroke="#00FF00" StrokeThickness="25" Data="M 200,150 A 50,50 0 0 1 150,200"></Path>
<Label VerticalAlignment="Center" HorizontalAlignment="Center" FontSize="30" Foreground="#00FF00" Content="{TemplateBinding Value}"></Label>
</Grid>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

这是一个进度条的样式,我现在又一个进度条,用这个样式
<ProgressBar Style="{DynamicResource jindutiao}" Tag="{Binding count}" Width="300" Height="300" VerticalAlignment="Top" HorizontalAlignment="Left"/>

当我绑定的这个数据变化时,进度条中我绑定的值没有变化。 应该如何绑定模板中的某个控件,并让这个控件的值可以根据绑定的数据变化而变化

百鸟朝凤的主页 百鸟朝凤 | 菜鸟二级 | 园豆:260
提问于:2019-05-28 16:50
< >
分享
最佳答案
0

重写模版设定函数,获取该控件,然后设置绑定或者INotifyProperty事件赋值

奖励园豆:5
花飘水流兮 | 专家六级 |园豆:13560 | 2019-05-29 00:07

能给个重写模板设定函数的demo么

百鸟朝凤 | 园豆:260 (菜鸟二级) | 2019-05-29 14:53

@百鸟朝凤:

花飘水流兮 | 园豆:13560 (专家六级) | 2019-05-29 15:25

@花飘水流兮: 嗯。。。不是这种方式的,我想要的是 我用ControlTemplate 重写模板,模板里面有个label标签,可以绑定的。 然后我把这个控件绑定到一个变量上,等变量的值变化的时候,label的值也跟着变化。

百鸟朝凤 | 园豆:260 (菜鸟二级) | 2019-05-29 15:30

@百鸟朝凤: 你把border看成label可以不?你属性设置改成绑定可以不?不是帮你写代码,只是给你方法。

花飘水流兮 | 园豆:13560 (专家六级) | 2019-05-29 16:41

@花飘水流兮: 都可以,我也绑定了, 现在的问题是 绑定的初始值没有问题,但是当后台中绑定的值变了, 控件中的值不会跟着变化

百鸟朝凤 | 园豆:260 (菜鸟二级) | 2019-05-29 16:49

@百鸟朝凤:

INotifyPropertyChanged实现;
实现了,大多数属性默认是双向;
自己好好看看代码哪里错了。

花飘水流兮 | 园豆:13560 (专家六级) | 2019-05-29 16:53

@花飘水流兮: INotifyPropertyChanged实现了,也没有问题, 只要不涉及到自定义模板的绑定都是可以的。 例如,我要弄一个 label, 样式 是 一个红色的圆圈,里面是文字, 这种自定义的控件, 我不知道如何双向绑定,初始值绑定是没问题的,但是值改变了,是通知不到我的控件的

百鸟朝凤 | 园豆:260 (菜鸟二级) | 2019-05-29 16:56
其他回答(1)
0

建议发个可运行的demo上来

会长 | 园豆:12401 (专家六级) | 2019-05-28 17:58
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册