[英]Bind XAML “Label” to Code Behind “public const” in Xamarin.Forms?
如何將Label
中的 Label 綁定到使用 Xamarin.Z645024626253198A392861 的代碼隱藏中的public const string
或者除了創建一個訪問我的公共常量的公共 static 屬性之外別無他法? 順便說一句,然后可以將其設為private const string
。
我在我的“App”class 中聲明了一個公共 const 字符串:
public partial class App : Application
{
public const string ShortVersion = "v1.00 Beta 1";
...
然后我想將它綁定到我的“MainPage.xaml”文件中的 label:
<Label Text="{Binding App.ShortVersion}"
x:Name="_versionLabel" Style="{StaticResource versionLabel}" ...
/>
這是我第一次嘗試數據綁定。
現在我在我的“MainPage.xaml.cs”文件中這樣做(而不是數據綁定):
public MainPage()
{
InitializeComponent();
_versionLabel.Text = App.ShortVersion;
}
根據您的評論,我發現您不熟悉 Xamarin 中的綁定工作原理。 我強烈建議您通讀Data Binding Basics 。
不過,您的問題的答案是 - 是的,您可以將其綁定到 const 變量。 但是,該變量必須是公開的。
總結一下綁定的工作原理-當您在 xaml 代碼Text="{Binding App.ShortVersion}"
中說時,幕后發生的事情是:
BindingContext
所以,你的問題是你沒有設置你的BindingContext
,這意味着你的頁面/視圖不知道從哪里尋找這個 const 值。 您可以為每個頁面/視圖/控件設置不同的綁定上下文。
每個頁面都有自己的BindingContext
集是一種很好的做法。 這意味着您將擁有MainPageViewModel.cs
class。 之后,您需要將頁面的上下文設置為新創建的 class ,如下所示:
public MainPage()
{
InitializeComponent();
BindingContext = new MainPageViewModel();
}
如果您絕對需要在App.xaml.cs
文件中而不是在頁面的 viewModel 中具有您的值,那么在您的MainPageViewModel
您將擁有一個屬性,它將從App.ShortVersion
中獲取其值。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.