Как установить вертикальное выравнивание при использовании муллибиндинга в wpf? - PullRequest
0 голосов
/ 01 мая 2018

Я пытаюсь установить стиль ListBoxItem. Во втором TextBox (где я просто привязываю PhoneNumber) текст правильно выровнен. Но во втором (где я использую TextBox StaticResource и мультисвязывание внутри) verticalAlignment не работает - он вообще не меняет текст.

<Style x:Key="ItemStyle" TargetType="ListBoxItem">
            <Style.Triggers>

                <Trigger Property="IsSelected"  Value="true">
                    <Setter Property="ContentTemplate">
                        <Setter.Value>
                            <DataTemplate>
                                <DockPanel>
                                    <TextBlock Style="{StaticResource TextBlockStyle}"
                                               VerticalAlignment="Center"
                                               DockPanel.Dock="Left"></TextBlock>
                                    <TextBlock Text="{Binding PhoneNumber}" 
                                               VerticalAlignment="Center" 
                                               DockPanel.Dock="Right" 
                                               HorizontalAlignment="Right"></TextBlock>
                                </DockPanel>
                            </DataTemplate>
                        </Setter.Value>
                    </Setter>
                    <Setter Property="HorizontalContentAlignment" Value="Stretch"/>
                </Trigger>

Вот мой TextBlockStyle:

<Style x:Key="TextBlockStyle" TargetType="TextBlock">
            <Setter Property="Height" Value="50"></Setter>
            <Setter Property="Text">
                <Setter.Value>
                    <MultiBinding StringFormat="{}{0} {1}">
                        <Binding Path="Name"/>
                        <Binding Path="LastName" />
                    </MultiBinding>
                </Setter.Value>
            </Setter>
            <Setter Property="VerticalAlignment" Value="Center"></Setter>
</Style>

1 Ответ

0 голосов
/ 01 мая 2018

Я решил это. Вместо того, чтобы поставить:

<Setter Property="VerticalAlignment" Value="Center"></Setter>

в TextBlockStyle Я должен положить его в ItemStyle.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...