參考下面的這個問題,我有 XAML 作業,但正在努力轉換為 C#
Xamarin / MAUI XAML 到 C#
這是我的嘗試不起作用,我不確定為什么......我的目標是當LayoutState.Success它通過 更新時VenuePageViewModel,VenueSuccessContentView應該顯示在cvWrap ContentView頁面上。
public partial class VenuePageViewModel : ObservableObject
{
[ObservableProperty]
private LayoutState layoutState = LayoutState.Loading;
public VenuePageViewModel()
{
LayoutState = LayoutState.Success;
}
}
public class VenueSuccessContentView : ContentView
{
public VenueSuccessContentView()
{
Content = new Label() { Text = "hello world", TextColor = Colors.Red };
}
}
public class MainPageCS : ContentPage
{
public MainPageCS()
{
BindingContext = new VenuePageViewModel();
var venueSuccessCV = new VenueSuccessContentView();
Resources.Add(nameof(LayoutState.Success), venueSuccessCV);
var cvWrap = new ContentView();
var cv = new ContentView();
cvWrap.Content = cv;
Content = cvWrap;
var datatrigger = new DataTrigger(typeof(ContentView))
{
Binding = new Binding(source: RelativeBindingSource.TemplatedParent, path: nameof(VenuePageViewModel.LayoutState)),
Value = LayoutState.Success,
Setters = {
new Setter { Property = ContentView.ContentProperty, Value = venueSuccessCV },
}
};
cvWrap.Triggers.Add(datatrigger);
}
}
最小回購:https ://github.com/aherrick/DataTriggerCSharpMaui
uj5u.com熱心網友回復:
DataTrigger 中的系結路徑不正確。
修改BindingDataTrigger 的屬性如下。
Binding = new Binding( path: nameof(VenuePageViewModel.LayoutState))
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/485884.html
