我創建了一個自定義 ContentPage 來顯示一個帶有首字母的圓形頭像。當我通過系結傳遞一個值時,它顯示為null,我除錯以檢查這一點。有人能幫助我嗎?謝謝。
主頁.xaml
<views:CircleView CircleText="{Binding Initials}"/>
圓視圖.xaml
<Frame x:Name="circleFrame">
<Label x:Name="circleLabel"
Text="{Binding CircleText}"/>
</Frame>
CircleView.xaml.cs
public partial class CircleView : ContentView
{
public CircleView()
{
InitializeComponent();
BindingContext = this;
}
public static readonly BindableProperty CircleTextProperty =
BindableProperty.Create(nameof(CircleText), typeof(string), typeof(CircleView), null);
public string CircleText
{
get { return (string)GetValue(CircleTextProperty); }
set { SetValue(CircleTextProperty, value); }
}
}
uj5u.com熱心網友回復:
你可以試試下面的代碼。
CircleView.xaml:
<Frame x:Name="circleFrame">
<Label x:Name="circleLabel"/>
</Frame>
CircleView.xaml.cs:
public CircleView()
{
InitializeComponent();
}
public static readonly BindableProperty CircleTextProperty =
BindableProperty.Create(nameof(CircleText), typeof(string), typeof(CircleView), propertyChanged:(b,o,n)=>(b as CircleView).OnChanged());
private void OnChanged()
{
circleLabel.Text = CircleText;
}
public string CircleText
{
get { return (string)GetValue(CircleTextProperty); }
set { SetValue(CircleTextProperty, value); }
}
主頁.xaml:
<views:CircleView CircleText="{Binding Initials}"/>
MainPage.xaml.cs:
public string Initials { get; set; }
public MainPage()
{
InitializeComponent();
Initials = "Hello";
this.BindingContext = this;
}
uj5u.com熱心網友回復:
在 CircleView.xaml 中,您應該在系結中包含一個源,類似于:
<ContentView x:Name="Self">
<Frame x:Name="circleFrame">
<Label x:Name="circleLabel"
Text="{Binding source={x:reference Self}, Path=CircleText}"/>
</Frame>
</ContentView>
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/313972.html
標籤:xml 沙马林 xamarin.forms xamarin 结合 xaml 绑定
下一篇:如何在uwp的選單欄中添加圖示
