Я делаю что-то не так? Вот упрощенная версия того, что я пытался:
Сгенерированный вывод:

MainWindow.xaml:
MainWindow.xaml.cs:
using Microsoft.UI.Xaml;
using System.ComponentModel;
namespace WinUIApp1
{
public partial class MyViewModel : INotifyPropertyChanged
{
private string _text = "This is a test";
public string Text
{
get => _text;
set {
if (_text != value)
{
_text = value;
OnPropertyChanged(nameof(Text));
}
}
}
protected void OnPropertyChanged(string propertyName)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
public event PropertyChangedEventHandler? PropertyChanged;
}
public sealed partial class MainWindow : Window
{
readonly MyViewModel _viewModel = new();
public MainWindow()
{
InitializeComponent();
}
}
}
MyDataTemplateSelector.cs:
using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;
namespace WinUIApp1;
public partial class MyDataTemplateSelector : DataTemplateSelector
{
protected override DataTemplate SelectTemplateCore(object item)
{
if (item is string)
{
return (DataTemplate)Application.Current.Resources["MyDataTemplate"];
}
return base.SelectTemplateCore(item);
}
protected override DataTemplate SelectTemplateCore(object item, DependencyObject container)
{
if (item is string)
{
return (DataTemplate)Application.Current.Resources["MyDataTemplate"];
}
return base.SelectTemplateCore(item, container);
}
}
App.xaml:
Подробнее здесь: https://stackoverflow.com/questions/798 ... data-bound
Мобильная версия