在xaml Xamarin中的xaml.cs文件中引用外部stacklayout组件ID

本文关键字:xaml 外部 stacklayout ID 引用 组件 文件 Xamarin 中的 cs | 更新日期: 2023-09-27 18:02:18

我正在制作一个继承自stackLayout组件的xaml文件。我把这个叫做TimerButton。

我有两个timerbutton,我想区分它们。

//In MainPage.xaml   
<component:TimerButton x:Name="Smoke"></component:TimerButton>  
<component:TimerButton x:Name="Snuff"></component:TimerButton>

我需要发送ID,这样我就可以在TimerButton组件内的c#代码(ViewModel.TobaccoType)中设置一个值。我试过使用x: arguments/name/type,但没有运气。

//In TimerButton.xaml.cs
ViewModel = new TimerButtonViewModel();
if (this.FindByName<TimerButton>("Smoke") != null)
{
     ViewModel.TobaccoType = "Smoke";
}

在xaml Xamarin中的xaml.cs文件中引用外部stacklayout组件ID

您可以执行以下操作。给TimerButton一个所谓的DependencyProperty,像这样:

public static readonly DependencyProperty TobaccoTypeProperty = 
    DependencyProperty.Register(
    "TobaccoType", typeof(String),
    typeof(TimerButton), null);
public String TobaccoType
{
   get { return (String)GetValue(TobaccoTypeProperty); }
   set { SetValue(TobaccoTypeProperty, value); }
}

然后在XAML中这样引用:

//In MainPage.xaml   
<component:TimerButton x:Name="Smoke" TobaccoType="Smoke"></component:TimerButton>  
<component:TimerButton x:Name="Snuff" TobaccoType="Snuff"></component:TimerButton>

您可以在您的TimerButton.cs

中轻松引用该属性。