Триггер на ComboBox SelectedValue не работает - PullRequest
1 голос
/ 20 марта 2020

У меня есть TextBox, который я хочу изменить Width на основе ComboBox.SelectedValue.

Это мой код:

<ComboBox Name="cmbService"
          DisplayMemberPath="Name"
          SelectedValue="IsCustomAvailable" 
          ItemsSource="{Binding DataServer}">
</ComboBox>

При изменении выбранного элемента я можно увидеть, что SelectedValue имеет некоторое значение и работает хорошо, но не работает в триггере:

<TextBox>
    <TextBox.Style>
        <Style TargetType="TextBox">
            <Setter Property="Width" Value="400" />
            <Style.Triggers>
                <DataTrigger Binding="{Binding SelectedValue, ElementName=cmbService}" Value="True">
                    <Setter Property="Width" Value="280" />
                </DataTrigger>
            </Style.Triggers>
        </Style>
    </TextBox.Style>
</TextBox>

1 Ответ

2 голосов
/ 20 марта 2020

Если вы хотите использовать свойство SelectedValue вашего ComboBox таким образом, вы должны использовать SelectedValuePath, чтобы указать, что вы sh будете использовать свойство IsCustomAvailable.

<ComboBox x:Name="cmbService"
          DisplayMemberPath="Name"
          ItemsSource="{Binding DataServer}"
          SelectedValuePath="IsCustomAvailable"/>

Вам также следует заменить разметку SelectedValue="IsCustomAvailable" на SelectedValue="true" или удалить ее, чтобы тип соответствовал bool.

...