【问题标题】:Accessing a Custom Renderer Instance from Xamarin Forms Element Shared Code从 Xamarin 表单元素共享代码访问自定义渲染器实例
【发布时间】:2015-10-24 03:59:05
【问题描述】:

我正在创建一个在每个平台上使用custom renderer 的组件。我们就称它为 SpecialButton 元素。 BindableProperty 适用于值,但我还希望允许用户从共享代码调用渲染器上的操作(从表单控制代码调用渲染器上的方法)。我将 DependencyService 视为一种可能的解决方案,但我认为这不会起作用,因为多个按钮可能出现在同一页面上,因此我需要创建并链接到我的 Xamarin Forms 元素的特定渲染器实例。

那么,我的 Xamarin Forms 控件元素是否有一种优雅的方式 访问由表单实例化的自定义渲染器 框架?

我曾考虑过在控件上公开一个属性,并让渲染器在其构造函数中将自己设置为该属性,但这感觉很麻烦,并且也将它公开给了我不想做的控件用户。

【问题讨论】:

    标签: c# xamarin custom-controls renderer xamarin-forms


    【解决方案1】:

    我想我找到了解决方案。我没有意识到MessagingCenter 有一个可以用来指定元素属性的源参数。

    MessagingCenter.Subscribe(this, "DoOperation", myButton => DoOperation(), Element);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-04
      相关资源
      最近更新 更多