Почему `` не работает внутри 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
Ответить

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

` не работает внутри DataTemplate?" class="inputbox autowidth" />
` не работает внутри DataTemplate?" />
Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

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

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

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