Подсказка для каждого элемента в выпадающем списке - PullRequest
0 голосов
/ 14 января 2019

Я пытаюсь добавить всплывающую подсказку для каждого имени пользователя (CreatedBy) в своем поле со списком в случае, если имя пользователя слишком длинное для ширины поля со списком.

Я знаю, что этот вопрос задавался миллион раз, я пытался использовать метод Style.Triggers, и я также пытался ToolTip = "{Binding Path = SelectedCreatedBy.ToolTip, RelativeSource = {RelativeSource Self}}

<ComboBox ItemsSource="{Binding CreatedBys.DefaultView}" SelectedValue="{Binding SelectedCreatedBy,UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="CreatedBy" DisplayMemberPath="CreatedBy" ToolTip="{Binding SelectedCreatedBy}" 
    Grid.Row="3" Grid.Column="12" Height="22" Width="85" FontSize="11" IsEditable="{Binding IsCreatedByEditable}" VerticalAlignment="Top" HorizontalAlignment="Left" >

Редактировать: Я нашел решение и выложу код здесь

<ComboBox ItemsSource="{Binding CreatedBys.DefaultView}" SelectedValue="{Binding SelectedCreatedBy,UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="CreatedBy" DisplayMemberPath="CreatedBy" ToolTip="{Binding SelectedCreatedBy}" 
          Grid.Row="3" Grid.Column="12" Height="22" Width="85" FontSize="11" IsEditable="{Binding IsCreatedByEditable}" VerticalAlignment="Top" HorizontalAlignment="Left" >
<ComboBox.ItemContainerStyle>
    <Style>
        <Setter Property="Control.ToolTip" Value="{Binding CreatedBy}" />
    </Style>
      </ComboBox.ItemContainerStyle>
 </ComboBox>

1 Ответ

0 голосов
/ 14 января 2019

Если я правильно понимаю, вы хотите, чтобы всплывающая подсказка появлялась для каждого из ваших вариантов комбинированного окна (а не только для выбранного). Если это так, добавьте следующий код внутри ComboBox:

<ComboBox.ItemTemplate>
    <DataTemplate>
        <TextBlock
            Text="{Binding CreatedBy}"
            ToolTip="{Binding ToolTip}"
            />
    </DataTemplate>
</ComboBox.ItemTemplate>

<ComboBox.ItemContainerStyle>
    <Style TargetType="ComboBoxItem">
        <Setter Property="HorizontalContentAlignment" Value="Stretch" />
    </Style>
</ComboBox.ItemContainerStyle>

ItemTemplate определяет TextBlock для каждого элемента с ToolTip, привязанным к свойству ToolTip вашей модели представления. ItemContainerStyle растягивает ComboBoxItem, так что подсказка появляется, даже если мышь находится не над текстом, а над элементом.

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