Попытка привязки к привязке модели родительского представления в моем ItemsControl - PullRequest
0 голосов
/ 25 апреля 2019

Я хочу привязать мою модель LDLTracks View в моем коде ItemsControl.Тем не менее, моя относительная исходная привязка, кажется, не связывается правильно.

<ItemsControl ItemsSource="{Binding LDLTracks}">

                    <ItemsControl.ItemsPanel>
                        <ItemsPanelTemplate>
                            <Canvas/>
                        </ItemsPanelTemplate>
                    </ItemsControl.ItemsPanel>

                    <ItemsControl.ItemTemplate>
                        <DataTemplate>
                            <ItemsControl ItemsSource="{Binding LineCoords}">

                                <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <Line  X1="{Binding X1}" Y1="{Binding Y1}" X2="{Binding X2}" Y2="{Binding Y2}" Stroke="Black" StrokeThickness="5">
                                            <Line.InputBindings>
                                                <MouseBinding Gesture="LeftClick" Command="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type viewModel:LDLTrackViewModel}}, Path=FooCommand}"/>
                                            </Line.InputBindings>
                                        </Line>
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>

                            </ItemsControl>
                        </DataTemplate>
                    </ItemsControl.ItemTemplate>

                </ItemsControl>

Мне интересно, потому что родительский уровень 1 выше - это на самом деле мой LineCoords, так что мне придется снова подниматься на один уровень вверх?Приветствия.

1 Ответ

1 голос
/ 25 апреля 2019

LDLTrackViewModel не является допустимым AncestorType, так как это не элемент в визуальном дереве.

Вы должны связать с родителем ContentPresenter родитель ContentPresenter:

Command="{Binding DataContext.FooCommand, RelativeSource={RelativeSource AncestorType=ContentPresenter, AncestorLevel=2}}" />
...