RE: Templated Combobox Tooltips from Items

Tech-Archive recommends: Fix windows errors by optimizing your registry



Hi Wts,

You can use a converter in the template as well. For example:

[XAML code]

<Window x:Class="WpfApplication4.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation";
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml";
xmlns:local="clr-namespace:WpfApplication4"
Title="Window1" Height="300" Width="300">

<Window.Resources>
<local:MyToolTipConverter x:Key="myTooltipConverter"/>

<Style TargetType="ComboBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ComboBox}">
<Border BorderBrush="Red" BorderThickness="3">
<Grid>
<ToggleButton Name="ToggleButton" />
<ContentPresenter Content="{TemplateBinding
SelectionBoxItem}">
<ContentPresenter.ToolTip>
<TextBlock Margin="0,0,100,50"
x:Name="textBlock"
Text="{TemplateBinding
SelectedItem, Converter={StaticResource myTooltipConverter}}"/>
</ContentPresenter.ToolTip>
</ContentPresenter>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>

</Window.Resources>

<DockPanel>

<ComboBox x:Name="combo2" SelectedIndex="0" DockPanel.Dock="Top"
Height="23" Width="251">
<ComboBoxItem ToolTip="FirstItem">one</ComboBoxItem>
<ComboBoxItem ToolTip="SecondItem">two</ComboBoxItem>
<ComboBoxItem ToolTip="ThirdItem">three</ComboBoxItem>
</ComboBox>

</DockPanel>

</Window>

===================================

[C# code]

namespace WpfApplication4
{
public partial class Window1 : Window
{
public Window1()
{
InitializeComponent();
}
}

[ValueConversion(typeof(object), typeof(String))]
public class MyToolTipConverter : IValueConverter
{
public object Convert(object value, Type targetType, object
parameter, CultureInfo culture)
{
ComboBoxItem selectedItem = (ComboBoxItem)value;
return selectedItem.ToolTip;
}

public object ConvertBack(object value, Type targetType, object
parameter, CultureInfo culture)
{
return value;
}
}
}

Should you have any question, please don't hesitate to let me know.

Sincerely,
Zhi-Xin Ye
Microsoft Managed Newsgroup Support Team

Delighting our customers is our #1 priority. We welcome your comments and
suggestions about how we can improve the support we provide to you. Please
feel free to let my manager know what you think of the level of service
provided. You can send feedback directly to my manager at:
msdnmg@xxxxxxxxxxxxxx

This posting is provided "AS IS" with no warranties, and confers no rights.

.


Quantcast