我的 VIEW 拒絕從 VIEWMODEL 中提取資料。Visual Studio 2022 智能感知填充連接,就好像有連接一樣,它編譯得很好……但沒有資料顯示。我已經離開 XAML 好幾年了,我正試圖重新加入。
我試圖讓一個輸入欄位更新 VIEWMODEL,然后用標簽顯示正在寫入 VIEWMODEL 的文本。我一直在削減代碼,在嘗試執行更復雜的系結之前嘗試讓任何東西作業,但現在我無法讓 VIEW 連接到 VIEWMODEL。
以下 XAML 是極其精簡的 VIEW 代碼。
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:model="clr-namespace:MauiCalendar.Model"
xmlns:viewmodel="clr-namespace:MauiCalendar.ViewModel"
x:Class="MauiCalendar.View.DaySingleView"
x:DataType="viewmodel:DaySingleViewModel"
Title="{Binding Title}">
<VerticalStackLayout>
<Entry
Text="{Binding Title}" />
<Label
Text="{Binding Title}" />
<Label
Text="Test" />
<Button
Text="Load Days" />
</VerticalStackLayout>
</ContentPage>
VIEWMODEL 稱為“DaySingleViewModel”,位于 ViewModel 目錄中。我有多個領域和方法,但我將它們剝離以保持這個問題的精簡。
using CommunityToolkit.Mvvm.ComponentModel;
using CommunityToolkit.Mvvm.Input;
using CommunityToolkit.Diagnostics;
using System.Diagnostics;
using System.ComponentModel;
using MauiCalendar.Model;
using MauiCalendar.Services;
namespace MauiCalendar.ViewModel
{
[ObservableObject]
public partial class DaySingleViewModel
{
public DaySingleViewModel()
{ }
[ObservableProperty]
string title = "Starting Value";
}
}
上面的代碼輸出如下:

有更多經驗的人愿意看看我做錯了什么嗎?
uj5u.com熱心網友回復:
我測驗了你的代碼,你需要先添加BindingContext連接。這是下面的代碼片段供您參考。只需保持代碼簡潔易懂。ViewViewModel
看法:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="MauiCalendar.View.DaySingleView">
<VerticalStackLayout>
<Entry Text="{Binding Title}" />
<Label Text="{Binding Title}" />
<Label Text="Test"/>
<Button Text="Load Days"/>
</VerticalStackLayout>
</ContentPage>
View 的代碼隱藏:
using MauiCalendar.ViewModel;
namespace MauiCalendar.View;
public partial class DaySingleView : ContentPage
{
??????public DaySingleView()
??????{
BindingContext = new DaySingleViewModel();
InitializeComponent();
??????}
}
視圖模型:
using CommunityToolkit.Mvvm.ComponentModel;
namespace MauiCalendar.ViewModel
{
[ObservableObject]
public partial class DaySingleViewModel
{
[ObservableProperty]
string title = "Starting Value";
public DaySingleViewModel() { }
}
}
起始頁:
using MauiCalendar.View;
namespace MauiCalendar;
public partial class App : Application
{
??????public App()
??????{
????????????InitializeComponent();
????????????MainPage = new DaySingleView();
??????}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/520478.html
上一篇:單擊復選框系結
