Во-первых, извините за заголовок. Рад изменить его на что-то лучшее, если у вас есть предложения.
Я новичок в wpf и не могу обернуться вокруг этой проблемы. У меня есть свойство List <> Serieslist в моем тексте данных UserControl. Пункты в этом списке livecharts SeriesCollection графиков (я думаю, что эта проблема связана с моей некомпетентностью с wpf, а не с livecharts). Я могу найти предка UserControl из StackPanel, но, находясь внутри lvc: CartesianChart with Series = "{Binding}", я не могу.
Мой XAML:
<Grid Grid.Column="1">
<StackPanel >
<ItemsControl ItemsSource="{Binding Serieslist}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<StackPanel>
<!--These Bindings work as intended-->
<TextBlock Text="{Binding Path=DataContext.From, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
<TextBlock Text="{Binding Path=DataContext.To, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
<lvc:CartesianChart Height="100" Series="{Binding}" Zoom="X" Grid.Column="0" DisableAnimations="True" DataTooltip="{x:Null}">
<lvc:CartesianChart.AxisX>
<!--These Bindings don't-->
<lvc:Axis LabelFormatter="{Binding Path=DataContext.Formatter, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
MinValue = "{Binding Path=DataContext.From, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
MaxValue = "{Binding Path=DataContext.To, Mode=TwoWay, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"
RangeChangedCommand="{Binding Path=DataContext.Axis_OnRangeChangedCommand, RelativeSource={RelativeSource AncestorType={x:Type UserControl}}}"/>
</lvc:CartesianChart.AxisX>
<lvc:CartesianChart.AxisY>
<lvc:Axis Foreground="DodgerBlue" MinValue="0"/>
<lvc:Axis Foreground="IndianRed" Position="RightTop" MinValue="0" MaxValue="10"/>
</lvc:CartesianChart.AxisY>
</lvc:CartesianChart>
</StackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</StackPanel>
</Grid>
Я понимаю, что область действия {Binding} изменяется при входе в CartesianChart, но все же, почему этот способ использования RelativeSource не находит правильный источник для привязки?
Также эти элементы оси живых диаграмм находятся внутри моего живого визуального дерева. [Bars] - это UserControl, и другие пользовательские элементы управления отсутствуют ![visual tree](https://i.stack.imgur.com/uwUKz.png)
Присвоение имени элементу-предку и нахождение текстового контекста с именем кажется несостоятельным для такой простой (?) Проблемы. Также мне может понадобиться повторно использовать эти пользовательские элементы управления, и я бы хотел избежать доступа к родительскому элементу управления name = usercontrol1 name = usercontrol2 name = usercontrol3 и т. Д.
Спасибо за помощь!