Подтвердить что ты не робот

Как объявить пустую строку в XAML ResourceDictionary

У меня есть ResourceDictionary, который содержит строки:

<ResourceDictionary xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <sys:String x:Key="Foo">Hello world</sys:String>
    ...
</ResourceDictionary>

Этот словарь является частью темы, а в некоторых темах некоторые из строк пусты:

    <sys:String x:Key="Foo"></sys:String>

Проблема в том, что в этом случае я получаю a XamlParseException:

Невозможно создать объект типа "System.String". Ошибка CreateInstance, что может быть вызвано отсутствием конструктора по умолчанию для 'System.String'

Я знаю, что можно объявить пустую строку в ресурсе массива, используя <x:Static Member="sys:String.Empty" />, но мне не нужен массив... Используя x:Static непосредственно, поскольку ресурс возвращает расширение разметки, а не строку, Помещение x:Static в элемент sys:String дает ту же ошибку, что и раньше.

Можно ли даже объявить пустую строку как ресурс XAML? Как?

4b9b3361

Ответ 1

Объявление его с помощью x:Static похоже работает для меня отлично...

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
                    xmlns:local="clr-namespace:Test"
            xmlns:sys="clr-namespace:System;assembly=mscorlib">
    <x:Static x:Key="empty" Member="sys:String.Empty" />
</ResourceDictionary>
 cc.Content = (string)FindResource("empty"); //Casts to string without exception