Я использую XCeed Extended Toolkit Plus. Графики специально. Тем не менее, я не думаю, что вопрос должен быть конкретно об этом контроле, подробнее о том, как передавать или делиться значениями между элементами управления и шаблонами.Как предоставить значения шаблону
Таблицы находятся в пользовательском элементе управления WPF, но значения задаются в коде позади. Нет привязки данных или MVVM, более того, подход «winforms».
Графическое изображение работает, но я хочу изменить способ отображения бара (на гистограмме).
Согласно документации, я могу использовать шаблон
<xctk:Chart >
<xctk:Chart.Areas>
<xctk:Area x:Name="MyGraphArea">
<xctk:Area.XAxis>
<xctk:Axis Title="Date"
/>
</xctk:Area.XAxis>
<xctk:Area.YAxis>
<xctk:Axis Title="Position"
/>
</xctk:Area.YAxis>
<xctk:Area.Series>
<xctk:Series Template="{StaticResource SeriesTemplate}" >
<!--done in code behind-->
</xctk:Series>
</xctk:Area.Series>
</xctk:Area>
</xctk:Chart.Areas>
</xctk:Chart>
На той же странице XAML, у меня есть в моем Grid.Resources
. Это где проблема является
<DataTemplate x:Key="SeriesTemplate">
<Button x:Name="Bar">
<StackPanel>
<DockPanel>
<TextBlock x:Name="seriesTemplateDate" Text="How To I Bind"></TextBlock>
</DockPanel>
<DockPanel>
<TextBlock x:Name="seriesTemplatePosition" Text="What Am I binding too"></TextBlock>
</DockPanel>
</StackPanel>
</Button>
</DataTemplate>
И в моем коде позади (показывая конструктор)
public GraphView(IEnumerable<DataPoint> graphData, string title)
{
InitializeComponent();
var series = new Series();
foreach (var dataPoint in graphData)
{
series.DataPoints.Add(dataPoint);
}
series.Title = title;
this.MyGraphArea.Series.Add(series);
}
Итак, DataTemplate, где у меня вопрос. Я не знаю, как ввести значение text
Я не думаю, что могу добавить значение по имени и установить его в коде позади, потому что он вызывается на каждой итерации (в зависимости от количества элементов в серии).
Единственный способ, в моей голове, это то, что DataTemplate может наследовать некоторые из вызывающего элемента управления. На этом этапе мои результаты Google ничего полезного не дают, и я думаю, что я запутался!