Как Вы вставляете привязку в середину предложения TextBlock в WPF?

== сравнивает ссылки двух объектов. Для перечислений гарантируется, что только будет один экземпляр, и поэтому для любых двух перечислений, которые являются тем же, == будет верно.

Ссылка:

http://www.ajaxonomy.com/2007/java/making-the-most-of-java-50-enum-tricks

(ничего не мог найти в документах солнца)

9
задан devuxer 10 September 2009 в 00:03
поделиться

4 ответа

Вы можете использовать свойство привязки StringFormat в .NET 3.5 SP1:

<TextBlock Text="{Binding UserName,StringFormat='Welcome, \{0\}!'}" />

Обратите внимание, что вам нужно экранировать фигурные скобки в строковом формате с помощью обратной косой черты.

Обновление Да, также поддерживаются несколько значений:

<TextBlock>
    <TextBlock.Text>
        <MultiBinding StringFormat="Welcome, {0} {1}!">
            <Binding Path="FirstName" />
            <Binding Path="LastName" />
        </MultiBinding>
    </TextBlock.Text>
</TextBlock>
15
ответ дан 4 December 2019 в 12:19
поделиться

Это самый простой способ смешать текст и элементы управления

<TextBlock>Welcome, <TextBlock Text="{Binding UserName}"/>!</TextBlock>

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

1
ответ дан 4 December 2019 в 12:19
поделиться

Пока я не знаю решения, которое делает это возможным точно так же, как вы описываете Это. Однако вы можете в качестве обходного пути использовать несколько текстовых блоков, чтобы собрать ваше предложение воедино:

<StackPanel Orientation="Horizontal">
    <TextBlock Text="Welcome, "/>
    <TextBlock Text="{Binding UserName}"/>
    <TextBlock Text="!"/>
</StackPanel>

Это то, что я использовал до сих пор, и, несмотря на громоздкость для ввода, кажется самым простым решением. Но как только вам понадобится интернационализация, по понятным причинам не пойдет.

0
ответ дан 4 December 2019 в 12:19
поделиться

Взгляните на эту библиотеку "WPFix". Это позволяет пользователю писать лямбда-выражения в XAML. Я не использовал его в производственном коде, только в демонстрационном коде. Я смог взять ширину формы, разделить ее на два и привязать значение к элементу управления. Обычно вам нужно создать класс конвертера, как вы описываете. Эта библиотека может быть тем, что вы ищете:

http://www.fikrimvar.net/lestirelim/?p=15

0
ответ дан 4 December 2019 в 12:19
поделиться
Другие вопросы по тегам:

Похожие вопросы: