2016-04-07 29 views
0

我添加了一个内容控件,其中包含一个名为bob的telerik图表。 我已经使用xamlReader.parse来构建内容控件,然后将其放置在画布上。如何访问通过名称添加到C#的控件

我现在想访问名为bob的图表来设置它的值。

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

我一直收到null。

有人能帮我确定我的图表并告诉我如何访问它吗?

将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); 
+0

您能否显示您的XAML? –

+0

您是否在创建时命名?当被添加到表单中时,它不会保留变量名称作为其名称,而必须明确设置它。也是笛卡尔图表* rad * –

+0

@ S.Akbari我已经展示了将字符串解析为xaml的C#代码 – Pomster

回答

0

如果'named'是指设置XAML属性x:Name,则可以通过该名称来访问它。例如,name =“Control” - > Control.SomeProperty =“”

相关问题