如何添加自定义属性,例如:
Public string Reason = "It does not matter why I need this";
要显示所有视图元素(按钮,图像,标签等),而不是创建单独的继承每个控件的类?
最好添加到:
public class View : VisualElement
但是不修改Xamarin类怎么做?
答案 0 :(得分:1)
您可以使用扩展方法
public static class ViewExtensions
{
// Enables compilers to dynamically attach object fields to managed objects.
// https://docs.microsoft.com/en-us/dotnet/api/system.runtime.compilerservices.conditionalweaktable-2?view=xamarinandroid-7.1
static readonly ConditionalWeakTable<View, ViewFieldsObject> ViewFields = new ConditionalWeakTable<View, ViewFieldsObject>();
public static string GetPerson(this View view) { return ViewFields.GetOrCreateValue(view).Person; }
public static void SetPerson(this View view, string person) { ViewFields.GetOrCreateValue(view).Person = person; }
public class ViewFieldsObject
{
public string Person { get; set; }
}
}
您可以将 View 替换为所需的任何类。
答案 1 :(得分:0)
这是不可能的,您需要为每个控件创建自定义类。
唯一可能的方法是从Github下载Xamarin.Forms代码并将属性添加到VisualElement,它可能会起作用,但是比将属性添加到要使用的任何控件上要复杂得多(您必须只要您想将Xamarin.Forms更新到新版本,就可以执行此操作。