我有一個視圖。我有一個可以綁定的財產。Xamarin形式強制視圖綁定值
public partial class OrderCard : ContentView
{
public static readonly BindableProperty OrderProperty = BindableProperty.Create(nameof(Order), typeof(Order), typeof(OrderCard), null);
public Order Order
{
get { return (Order)GetValue(OrderProperty); }
set { SetValue(OrderProperty, value); }
}
public OrderCard()
{
InitializeComponent();
}
}
在該視圖中,我結合順序屬性像這樣的XAML:
Text="{Binding Order.Name, Source={x:Reference Root}}"
根在一個視圖中的XAML OrderCard
名字當我使用這個視圖在頁面中一切正常。
但我想測量它的大小,甚至在添加到頁面之前。
var orderCard = new OrderCard { Order = order};
SizeRequest sizeRequest = orderCard.Measure(OrdersContainer.Width/5, OrdersContainer.Height);
但它給了我錯誤的數字,因爲沒有應用綁定。 如何在視圖未附加到頁面時強制應用綁定?
非虛擬值。它正在測量一切正常,但因爲它沒有應用綁定。爲什麼我不能在沒有添加頁面的情況下進行測量?測量方法接收所有需要測量的數據(我說的是視圖必須嘗試適合的寬度和高度)。 但我試圖將其添加到頁面(動態創建) - 沒有任何更改 –
什麼使視圖檢查綁定的值? –
Xaml loader在這種情況下無法執行綁定,因爲在創建視圖之後(在InitializeComponent之後)會應用值。我需要強制某種方式來檢查值。因爲它不想更新一切,所以它必須這樣做,因爲這裏是雙向綁定,我設置了一個值,所有綁定都必須填充一個新值 –