源码

首页 » 归档 » 源码 » 未通过Silverlight 4中的XAML DataBinding设置自定…

未通过Silverlight 4中的XAML DataBinding设置自定…


我有一个名为GoalProgressControl的自定义用户控件.另一个用户控件包含GoalProgressControl,并通过XAML中的数据绑定设置其GoalName属性.但是,从未设置GoalName属性.当我在调试模式下检查它时,GoalName在控件的生命周期内始终为“ null”.

如何设置GoalName属性?我做错了什么吗?

我正在使用.NET Framework 4和Silverlight4.对于XAML和Silverlight来说,我是一个相对较新的人,所以对您的帮助将不胜感激.

我试图将GoalProgressControl.GoalName更改为POCO属性,但这会导致Silverlight错误,而我的阅读使我相信数据绑定属性应为DependencyProperty类型.我还简化了代码,使其仅专注于GoalName属性(下面的代码),但没有成功.

这是GoalProgressControl.xaml:




    


GoalProgressControl.xaml.cs:

public partial class GoalProgressControl : UserControl, INotifyPropertyChanged
{

    public GoalProgressControl()
    {
        InitializeComponent();
    }


    public event PropertyChangedEventHandler PropertyChanged;
    public void NotifyPropertyChanged(string propertyName)
    {
        if (PropertyChanged != null)
        {
            PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
        }
    }

    public static DependencyProperty GoalNameProperty = DependencyProperty.Register("GoalName", typeof(string), typeof(GoalProgressControl), null);
    public string GoalName
    {
        get
        {
            return (String)GetValue(GoalProgressControl.GoalNameProperty);
        }
        set
        {
            base.SetValue(GoalProgressControl.GoalNameProperty, value);
            NotifyPropertyChanged("GoalName");
        }
    }
}

我已将GoalProgressControl放在另一页上:

    
        
            
                
                
                    
                        
                            
                            

                        
                    
                
            
        
    

请注意上面注释掉的“ TextBlock”项.如果我在TextBlock中添加注释并在GoalProgressControl中添加注释,则绑定将正确工作,并且TextBlock将正确显示GoalName.另外,如果我将上面的“ GoalName”属性替换为简单的文本字符串(例如“ hello world”),则控件将正确渲染,并且在渲染时会在控件上显示“ hello world”.

(0)

本文由 投稿者 创作,文章地址:https://blog.isoyu.com/archives/weitongguosilverlight-4zhongdexaml-databindingshezhiziding.html
采用知识共享署名4.0 国际许可协议进行许可。除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为:11 月 12, 2019 at 06:36 下午

热评文章