Моя модель представления
partial class TestViewModel : ObservableObject
{
[ObservableProperty]
private string inputText;
}
Мой взгляд
<Window x:Class = "WpfApp_framework.MainWindow"
xmlns = "http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x = "http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d = "http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc = "http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local = "clr-namespace:WpfApp_framework"
mc:Ignorable = "d"
Title = "MainWindow" Height = "450" Width = "800"
xmlns:viewModel = "clr-namespace:WpfApp_framework.ViewModel">
<Window.DataContext>
<viewModel:TestViewModel/>
</Window.DataContext>
<Grid>
<StackPanel>
<TextBox Text = "{Binding Path=InputText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></TextBox>
<TextBlock Text = "{Binding Path=InputText, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"></TextBlock>
</StackPanel>
</Grid>
</Window>
Данные не привязываются. как это решить?
Но это работает, когда я использую .NET 6 или 7. Как заставить MVVM Toolkit работать с .NET Framework 4.8?
Возможно, вы заметили ошибку MVVMTK0008.
Щелкните правой кнопкой мыши файл packages.config и выберите параметр Migrate packages.config to PackageReference.... Это добавит требуемый <PackageReference> в файл проекта .csproj:
<ItemGroup>
<PackageReference Include = "CommunityToolkit.Mvvm">
<Version>8.1.0</Version>
</PackageReference>
</ItemGroup>
Затем откройте файл проекта и установите версию языка C# 8.0 или выше:
<PropertyGroup>
...
<LangVersion>8.0</LangVersion>
</PropertyGroup>
Если вы затем перезагрузите проект, соберите и запустите его, он должен работать.
Посмотрите список зависимостей для пакета nuget. Видишь, где написано Net Standard 2.0 и 2.1? Это ядро сети, которое было изобретено после сети 4.8. Генерация частичных классов опирается на генераторы исходного кода, которые являются относительно новой вещью. Я не уверен, что они вообще работают в vs2019.