首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AttachedProperty和TypeConverter

AttachedProperty和TypeConverter
EN

Stack Overflow用户
提问于 2022-08-17 07:30:45
回答 1查看 37关注 0票数 0

我想使用由Xamarin /MAUI: ColumnDefinitionCollectionTypeConverter定义的TypeConverter,它允许特定的格式输入来定义网格上的列。

我的问题是,我想在AttachedProperty上应用它。通常,它是在属性上定义的(Bindable属性,.)

我试图将它应用于Setter部分,但它不起作用:

代码语言:javascript
复制
public static readonly BindableProperty ColumnDefinitionsProperty = BindableProperty.CreateAttached(
  "ColumnDefinitions", typeof(ColumnDefinitionCollection), typeof(PH), default(ColumnDefinitionCollection),
  propertyChanged: ColumnDefinitionsChanged);

[TypeConverter(typeof(ColumnDefinitionCollectionTypeConverter))]
public static void SetColumnDefinitions(BindableObject element, ColumnDefinitionCollection value) =>
  element.SetValue(ColumnDefinitionsProperty, value);

public static ColumnDefinitionCollection GetColumnDefinitions(BindableObject element) =>
  (ColumnDefinitionCollection)element.GetValue(ColumnDefinitionsProperty);

有解决办法吗?

EN

回答 1

Stack Overflow用户

发布于 2022-08-18 18:20:53

还不清楚您是否想定义您的ColumnDefinitions并使用它做其他事情;或者您是否希望有一个不是ColumnDefinitions的输入来定义它们。

在这两种情况下,我建议使用您似乎已经定义的可绑定属性OnChanged事件,而不是TypeConverter。

如果要定义ColumnDefinitions并使用该信息影响其他字段,可以简单地将ColumnDefinitionsChanged方法定义为

代码语言:javascript
复制
static void ColumnDefinitionsChanged (BindableObject bindable, object oldValue, object newValue)
{
  // Property changed implementation goes here
}

我似乎明白,您想要给您的控件提供一种不同类型的输入,然后指定您的ColumnDefinitions。如果是这样的话,您可以相反地定义一个新的custome BindableProperty "ColumnTypeProperty“,让我们称之为它,它可能是您的自定义枚举的类型,并从这个新属性的ColumnTypePropertyChanged事件中务实地更改您的ColumnDefinitions值。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/73384440

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档