WPF: проблема с пробелом при использовании пользовательского расширения разметки в VS2010 - PullRequest
2 голосов
/ 25 января 2011

Мы разработали решение локализации с использованием пользовательского расширения разметки в VS 2008.

В то время мы использовали это так:

<TextBlock Text={utilsWpf:Intl Key=ObjectName.PropertyName, DefaultText=Default Name} />

(обратите внимание на пробел в тексте по умолчанию). (Обратите также внимание на то, как инструмент для изменения цвета текста в StackOverflow также меняет цвет слов).

Но работает нормально и без проблем компилируется.

В VS 2010, однако, всякий раз, когда вы пытаетесь ввести пробел, используя этот способ реализации расширения разметки, IDE всегда добавляет вам запятую, которая дает:

<TextBlock Text={utilsWpf:Intl Key=ObjectName.PropertyName, DefaultText=Default, Name} />

Конечно, он больше не компилируется ...

Одним из решений этой проблемы является реализация этого расширения разметки другим способом:

<TextBlock>
    <TextBlock.Text>
       <utilsWpf:Intl Key="ObjectName.PropertyName", DefaultText="Default Name"/>
    </TextBlock.Text>
</TextBlock>

Но это добавляет много строк, и у нас нет только одного текстового блока, как вы можете себе представить ...

Другое решение - не вводить пространство, а копировать другое пространство и вставлять его (которое все еще компилируется в VS 2010, но довольно грубое).

На мой взгляд, наше решение не лучшая практика.

Какую наилучшую практику вы бы посоветовали, чтобы иметь возможность печатать пробелы без неудобств?

Спасибо за ваши идеи.

1 Ответ

0 голосов
/ 25 января 2011

Попробуйте использовать одинарные кавычки:

<TextBlock Text="{utilsWpf:Intl Key=ObjectName.PropertyName, DefaultText='Default Name'}" /> 
...