为什么我写的程序WPF 绑定后不能更新数据? 200

点击一个按钮,修改label的背景颜色。刚绑定上时可以变为Colors.Red,但是点击按钮没反应。跟踪发现PropertyChanged总是为空。不知道什么回事?pub... 点击一个按钮,修改label的背景颜色。
刚绑定上时可以变为Colors.Red,但是点击按钮没反应。
跟踪发现PropertyChanged 总是为空。不知道什么回事?
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
clsColorStyle ccs = new clsColorStyle();
private void Window_Loaded(object sender, RoutedEventArgs e)
{
ccs.scb = new SolidColorBrush(Colors.Red);
label1.SetBinding(Label.BackgroundProperty, new Binding(){ Source = ccs.scb });
}

private void button3_Click(object sender, RoutedEventArgs e)
{
ccs.scb = new SolidColorBrush(Colors.Goldenrod);
}
}
public class clsColorStyle : INotifyPropertyChanged
{
SolidColorBrush _scb = new SolidColorBrush(Colors.RoyalBlue);
public SolidColorBrush scb
{
get { return _scb; }
set
{
if (_scb != value)
{
_scb = value;
OnChanged("scb");
}
}
}

public event PropertyChangedEventHandler PropertyChanged;
public void OnChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
展开
 我来答
Mickal小米
2013-08-05 · TA获得超过3666个赞
知道大有可为答主
回答量:1542
采纳率:100%
帮助的人:1772万
展开全部
应该是你后台属性绑定代码写错了。其实clsColorStyle类可以放在Resource里让前台的控件引用。
比如可以放在Window.Resources里,<local:clsColorStyle x:Key="clsColorStyle"/>
然后label去绑定
<Label Name="label1" Height="25" Width="50" Background="{Binding Source={StaticResource clsColorStyle}, Path=scb}" />
后台的按钮事件里这样写
private void button1_Click(object sender, RoutedEventArgs e)
{
(Resources["clsColorStyle"] as clsColorStyle).scb = new SolidColorBrush(Colors.Goldenrod);
}
1013000811
2013-07-31
知道答主
回答量:5
采纳率:0%
帮助的人:8万
展开全部
答案:用法错了。
1、如果你想跟你现在的用法一样,那么每次改变模型的属性时都要重新绑定。也就是你的button3也要和加载时的用法一样:
2、如果你只想改变模型属性不用管绑定,那就在xaml中一次性绑定好。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
haoweiyishi
2013-08-01
知道答主
回答量:24
采纳率:0%
帮助的人:19.3万
展开全部
假如你你现在跟你用的一样的花,每次都要改变模型的属性时都要重新绑定一下,也就是你的BUTTON3也要和加载的用法一样。
假如你想改变模型属性不用关心绑定,在XAML中一次行绑定好。还要函数上加
grid1.DataContext = ccs;
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式