Avalonia自定义控件绑定属性类型转换时抛出异常的问题咨询
Avalonia自定义控件绑定属性类型转换时抛出异常的问题咨询
大家好,最近在做Avalonia自定义控件的时候遇到了个头疼的问题,先给大家看下我目前写的控件代码:
using Avalonia; using Avalonia.Controls; using Client.Attributes; using Client.ViewModels; namespace Client.Controls; [ViewModel(typeof(MailBoxItemControlViewModel))] public partial class MailBoxItemControl : UserControl { // 为Account声明一个样式化属性 public static readonly StyledProperty<string> AccountProperty = AvaloniaProperty.Register<MailBoxItemControl, string>(nameof(Account)); public string Account { get => GetValue(AccountProperty); set => SetValue(AccountProperty, value); } }
(注:原代码粘贴时有点截断,我把string部分补全了,应该是这个逻辑)
我尝试把这个自定义控件的Account属性和ViewModel里的一个自定义类型(比如AccountModel)做双向绑定,结果运行直接抛出了类型转换异常,提示无法将AccountModel转换为string类型。
我试过在绑定的时候指定Converter,但好像没起作用,而且总觉得每次绑定都写转换器有点繁琐,想请教下各位:
- 这种自定义控件的属性绑定,类型转换的正确处理方式是什么?
- 能不能在注册
StyledProperty的时候就把类型转换逻辑内置进去,后续绑定就不用重复处理了? - 会不会是我注册属性的方式有问题,导致Avalonia的绑定系统没法自动识别和处理类型转换?
麻烦大家帮忙分析下,谢谢啦!
内容来源于stack exchange
相关产品推荐
相关产品推荐

