Я пытаюсь включить пример из документации Avalonia в свой тестовый проект, но я застрял в попытке использовать mainwindowviewmodel < /strong> также как code-behind для mainwindow (mainwindow.axaml.cs)
Пример-последний на https://docs.aloniaui.net/docs/ ссылка/элементы управления/combobox, что, к сожалению, немного устаревшей.
Код: Выделить всё
using Avalonia.Controls;
using Avalonia.Media;
using System.Linq;
namespace AvaloniaControls.Views
{
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
fontComboBox.Items = FontManager.Current
.GetInstalledFontFamilyNames()
.Select(x => new FontFamily(x))
.OrderBy(x=>x.Name);
fontComboBox.SelectedIndex = 0;
}
}
}
< /code>
Mainwindow имеет несколько других элементов управления с использованием модели представления MVVM < /p>
x:DataType="vm:MainWindowViewModel"
< /code>
Поэтому, когда я введите {привязку} Rider полезно напоминает мне с '(mainwindowviewmodel). Path = '< /em>
Я также узнал, что при использовании термина «привязка» это должно быть с свойством - если, возможно, это не в коде.
(что просто Сделаю голову, когда я пытаюсь заполнить, в данном случае, Combobox.) Данные, которые я ожидаю) < /p>
public List lFonts = new List();
public MainWindow()
{
InitializeComponent();
ColourComboBox.ItemsSource = ColourBasesTxt;
ThemesComboBox.ItemsSource = Themes;
IFontCollection allFonts = FontManager.Current.SystemFonts;
foreach (var font in allFonts)
{
lFonts.Add(font.Name);
}
FontComboBox.ItemsSource = lFonts;
< /code>
Теперь то, что я не могу тренироваться, это как связать это с XAML. Пример кода был < /p>
< /code>
в моем коде < /p>
< /code>
Теперь < /p>
< /code>
не работает, потому что он пытается связываться с mainwindowviewmodel.name
Я попробовал много сумасшедших предложений, чтобы получить контекст данных в DataTemplate, чтобы быть кодом- позади.
Все, кроме 1, не проходили проверку синтаксиса.
Я не могу переориентировать весь Combobox, потому что «SelectedItem» должен быть на свойство в MainwindowViewModel (что это есть). < /p>
Тот, кто приблизился, - < /p>
Мне жаль, что я настолько новичок в этом методе, что мне даже не хватает языка, чтобы правильно сформулировать вопрос. Используйте «Источник» (код, поставляющий содержимое списка) в одном модуле и «SelectedItem» в другом модуле. » "Как вы можете указать DataContext, чтобы стать кодом, стоящим за модулем для любого данного XAML"
Спасибо за терпение
jc
Подробнее здесь: https://stackoverflow.com/questions/793 ... given-xaml