Как получить доступ к элементу управления, добавленному из C# по имени

Я добавил Контент Контент, содержащий Telerik Chart, который я назвал bob. Я использовал xamlReader.parse для создания элемента управления контентом, а затем поместил его на холст.

Теперь я хочу получить доступ к графику с именем bob, чтобы установить его значения.

var myChart = (RadCartesianChart)this.FindName("bob");

Я продолжаю получать ноль.

Может ли кто-нибудь помочь мне определить мой график и показать, как получить к нему доступ?

Код для добавления ContentControl на холст в моем Xaml.

StringBuilder LineCharString = new StringBuilder("<ContentControl ");
LineCharString.Append("xmlns='http://schemas.microsoft.com/winfx/2006/xaml/presentation' ");
LineCharString.Append("xmlns:x='http://schemas.microsoft.com/winfx/2006/xaml' ");
LineCharString.Append("xmlns:s='clr-namespace:AccSys.Helpers.Dashboard;assembly=AccSys' ");
LineCharString.Append("xmlns:telerik='http://schemas.telerik.com/2008/xaml/presentation' ");
LineCharString.Append("Width='100' Height='100' MinWidth='50' MinHeight='50' Canvas.Top='160' Canvas.Left='30'>");
LineCharString.Append("<Grid IsHitTestVisible='False'>");
LineCharString.Append("<Grid.RenderTransform>");
LineCharString.Append("<TranslateTransform/>");
LineCharString.Append("</Grid.RenderTransform>");
LineCharString.Append("<telerik:RadCartesianChart x:Name='" + ChartName + "'>");
LineCharString.Append("<telerik:RadCartesianChart.Grid>");
LineCharString.Append("<telerik:CartesianChartGrid MajorLinesVisibility='XY' MajorXLineDashArray='10,5' MajorXLinesRenderMode='All' />");
LineCharString.Append("</telerik:RadCartesianChart.Grid>");
LineCharString.Append("<telerik:RadCartesianChart.VerticalAxis>");
LineCharString.Append("<telerik:LinearAxis/>");
LineCharString.Append("</telerik:RadCartesianChart.VerticalAxis>");
LineCharString.Append("<telerik:RadCartesianChart.HorizontalAxis>");
LineCharString.Append("<telerik:CategoricalAxis/>");
LineCharString.Append("</telerik:RadCartesianChart.HorizontalAxis>");
LineCharString.Append("<telerik:BarSeries x:Name='xBarSeries' CategoryBinding='XValue' ValueBinding='YValue'/>");
LineCharString.Append("</telerik:RadCartesianChart>");
LineCharString.Append("</Grid>");
LineCharString.Append("</ContentControl>");

ContentControl LineChartCC = new ContentControl();
LineChartCC = (ContentControl)XamlReader.Parse(LineCharString.ToString());

var canvass = DashboardCanvas;
canvass.Children.Add(LineChartCC);

1 ответ

Если под "именованным" вы подразумеваете установку свойства XAML x:Name, вы можете получить к нему это имя. Например, name="Control" -> Control.SomeProperty = ""

Другие вопросы по тегам