Гость
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ToolTip binding / 1 сообщений из 1, страница 1 из 1
10.10.2018, 19:25
    #39715745
vb_sub
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
ToolTip binding
Всем привет, реализую следующий функционал:
Есть главная View, у нее есть ListView со своим набором объектов.
Хочу чтобы при наведении курсора появлялась tooltip c сгенерированным QR кодом.
View:
Код: xml
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
        <ListView  Grid.Column="1"  ItemsSource="{Binding persons}"  >
            <ListView.Style>
                <Style TargetType="{x:Type ListView}">
                    <Style.Triggers>
                        <Trigger Property="ItemsSource" Value="{x:Null}">
                            <Setter Property="Visibility" Value="Collapsed"   />
                        </Trigger>
                    </Style.Triggers>
                </Style>
            </ListView.Style>

            <ListView.ItemTemplate>
                <DataTemplate DataType="{x:Type models:person}">
                    <Border>
                        <DockPanel >
                            
                            <StackPanel Orientation="Horizontal"   DockPanel.Dock="Left"    >

                                <TextBlock Text="{Binding F}" Margin="5 0 5 0"
                                            VerticalAlignment="Center" />

                                <TextBlock DockPanel.Dock="Right"
                                           FontFamily="{StaticResource FontAwesome}" 
                                           FontSize="20"  
                                           Text="&#xf029;"
                                           Foreground="Darkcyan"
                                           VerticalAlignment="Center"
                                           ToolTipService.ShowDuration="12000">
                                    <TextBlock.ToolTip >
                                        <ToolTip 
                                             IsOpen="{Binding DataContext.isToolTipOpen}"
                                             DataContext="{Binding RelativeSource={RelativeSource
                                             Mode=Self},Path=PlacementTarget.Parent}">
                                            
                                        <Image                                            
                                         Source="{Binding DataContext.imgSource}"                                         
                                         RenderOptions.BitmapScalingMode="NearestNeighbor"
                                         RenderOptions.EdgeMode="Aliased"
                                         MinHeight="300" MinWidth="300"/>
                                        </ToolTip>

                                    </TextBlock.ToolTip>
                                </TextBlock>
                            </StackPanel>

                        </DockPanel>
                    </Border>
                </DataTemplate>
            </ListView.ItemTemplate>
            
        </ListView>



viewmodel

Код: c#
1.
2.
3.
4.
public class VM
{
 public ObservableCollection<person> persons { get;  set; }
}



Проблема в том, что при байндинге из tooltip я могу максимум добраться до датаконтекста класса person, соответственно, чтобы сгенерировать QR (присвоить свойство imgSource класса person) мне в солюшн с моделями нужно тянуть еще много разных зависимостей (генерация QR кода, генерация ID, presentation core и тд.)- что очень плохо смешивать логику. Очень хотелось бы реализовать эту логику в ViewModel в виде команды с параметром-при открытии tooltip во viewModel срабатывает команда с параметром person, на котором открыли tooltip, и во ViewModel я присваиваю свойство imgSource. Для этого нужно реализовать в tooltip интерфейс ICommandSource. Но как прорваться к датаконтексту главной View? Из-за того, что tooltip не является элементом визуального дерева , соответственно findancestor не работает. Всем спасибо
...
Рейтинг: 0 / 0
Форумы / WPF, Silverlight [игнор отключен] [закрыт для гостей] / ToolTip binding / 1 сообщений из 1, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]