为了账号安全,请及时绑定邮箱和手机立即绑定

将值添加到 XAML 中的自定义集合属性

将值添加到 XAML 中的自定义集合属性

C#
阿晨1998 2021-11-21 15:10:46
我正在尝试通过 XAML 向自定义集合属性添加值:<local:OnePageHeaderView>  <local:OnePageHeaderView.RightIconViewCollection>    <toolkit:IconView Source="one.png"></toolkit:IconView>    <toolkit:IconView Source="two.png"></toolkit:IconView>    <toolkit:IconView Source="three.png"></toolkit:IconView>  </local:OnePageHeaderView.RightIconViewCollection></local:OnePageHeaderView>我确实PropertyChanged像这样设置了自定义属性和事件:public static readonly BindableProperty RightIconViewCollectionProperty = BindableProperty.Create(    propertyName: "RightIconViewCollection",    returnType: typeof(ObservableCollection<IconView>),    declaringType: typeof(OnePageHeaderView),    defaultValue: new ObservableCollection<IconView>(),    propertyChanged: RightIconViewCollectionPropertyChanged);public ObservableCollection<IconView> RightIconViewCollection{    get    {        return (ObservableCollection<IconView>)GetValue(RightIconViewCollectionProperty);    }    set    {        SetValue(RightIconViewCollectionProperty, value);    }}private static void RightIconViewCollectionPropertyChanged(BindableObject bindable, object oldValue, object newValue){    var control = (OnePageHeaderView)bindable;    control.RightIconViewCollection = (ObservableCollection<IconView>)newValue;}问题是这RightIconViewCollection始终是我设置的默认值,无论我尝试在 XAML 中添加多少个值。我可以确认它IconView按预期工作,因为我通过在后面的代码中手动添加 IconViews 做了一些测试用例并且它工作了。为什么它RightIconViewCollection的值总是 defaultValue ( new ObversableCollection()) 而不是我在 XAML 中明确添加的值?
查看完整描述

1 回答

?
长风秋雁

TA贡献1757条经验 获得超7个赞

收藏型的可绑定属性的默认值应使用的设置BindableProperty.Create方法,但在类的constuctor。

这是一样的,其解释WPF依赖属性在这里



查看完整回答
反对 回复 2021-11-21
  • 1 回答
  • 0 关注
  • 176 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号