Как я могу указать DataContext, чтобы быть модулем кода-и-завода для любого данного XAML? (Пример преобразования «AvalonC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Как я могу указать DataContext, чтобы быть модулем кода-и-завода для любого данного XAML? (Пример преобразования «Avalon

Сообщение Anonymous »

Извините, другой вопрос начинающего.

Я пытаюсь включить пример из документации 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>

, который на самом деле работал, но Combobox заполнен текстом ' avalonia.controls.combobox ' line после строки.
Мне жаль, что я настолько новичок в этом методе, что мне даже не хватает языка, чтобы правильно сформулировать вопрос. Используйте «Источник» (код, поставляющий содержимое списка) в одном модуле и «SelectedItem» в другом модуле. » "Как вы можете указать DataContext, чтобы стать кодом, стоящим за модулем для любого данного XAML"
Спасибо за терпение
jc

Подробнее здесь: https://stackoverflow.com/questions/793 ... given-xaml
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»