Почему `` не работает внутри DataTemplate?C#

Место общения программистов C#
Anonymous
Почему `` не работает внутри DataTemplate?

Сообщение Anonymous »

Я столкнулся со странным крайним случаем в WPF, связанном с тем, что может быть вложенным элементом, а не атрибутом. У меня есть базовое приложение WPF, одно окно и файл App.xaml по умолчанию.
Класс MainWindow имеет ключ, определенный в коде:
Класс MainWindow имеет ключ, определенный в коде:
Класс MainWindow p>

Код: Выделить всё

public const string IntKey = nameof(IntKey);
и XAML вот так: Это работает — содержимое окна пытается отобразить строку, ресурс DataTemplate перехватывает ее и показывает другой ContentControl, отображающий int 1234.
Если я преобразую атрибут Content в DataTemplate во вложенный элемент, я получаю исключение: Невозможно найти ресурс с именем «System.Windows.Markup.StaticExtension». Имена ресурсов чувствительны к регистру.

Если я затем также преобразую атрибут ResourceKey: Это снова работает, возвращаясь к отображению 1234 в окне.
Примечания
  • Это происходит так же, как при использовании ключевого DataTemplate, а не неявного
  • Эта ошибка возникает только тогда, когда ContentControl находится внутри DataTemplate — если я помещу его непосредственно в тело Window, он будет работать во всех трех случаях.
ВопросПочему первое изменение вызывает исключение? Почему второй заставляет его снова исчезнуть? Мне кажется, они все должны быть эквивалентны.

Подробнее здесь: https://stackoverflow.com/questions/791 ... nside-a-da

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