Как я могу связать видимость TooTip со свойством ToolTipVisibility, которое находится во ViewModel? У меня есть класс MenuObject,
public class MenuObject
{
public string Name { get; set; }
public string IconPath { get; set; }
}
Коллекция MenuObjects, свойство ToolTipVisibility в ViewModel,
public class MainViewModel : Conductor<object>
{
private bool _toolTipVisibility;
private ObservableCollection<MenuObject> _menuItems;
public bool ToolTipVisibility
{
get { return _toolTipVisibility; }
set
{
_toolTipVisibility = value;
NotifyOfPropertyChange(() => ToolTipVisibility);
}
}
public ObservableCollection<MenuObject> MenuItems
{
get { return _menuItems; }
set
{
_menuItems = value;
NotifyOfPropertyChange(() => MenuItems);
}
}
public MainViewModel()
{
ToolTipVisibility = true;
}
public void ToggleVisibility()
{
ToolTipVisibility = !ToolTipVisibility;
}
}
и привязка ListView с этой коллекцией
<ListView x:Name="MenuItems">
<ListView.ItemTemplate>
<DataTemplate>
<DataTemplate.Resources>
<BooleanToVisibilityConverter x:Key="b2vc"/>
</DataTemplate.Resources>
<StackPanel Orientation="Horizontal">
<Image Source="{Binding Path=IconPath}" Stretch="None" Margin="12,0,0,0"/>
<TextBlock Text="{Binding Path=Name}" Margin="25,0,0,0"/>
<StackPanel.ToolTip>
<ToolTip Content="{Binding Path=Name}"
Visibility="{Binding ..., Converter={StaticResource b2vc}}"/> <!--// How can i do this? //-->
</StackPanel.ToolTip>
</StackPanel>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Помогите мне, пожалуйста , Спасибо! :)
ОБНОВЛЕНИЕ: я пробовал много способов и все еще не могу восстановить его. Но я кое-что узнал. Если я добавлю
Visibility="{Binding RelativeSource={RelativeSource Mode=FindAncestor,
AncestorType={x:Type Window}, AncestorLevel=1},
Path=DataContext.ToolTipVisibility, Converter={StaticResource b2vc}}"
в тег StackPanel
, то он будет работать нормально. Но если я добавлю то же самое в тег ToolTip
, это не сработает. Чего мне не хватает?