从代码访问XAML对象

时间:2009-04-27 13:11:44

标签: wpf xaml

我在WPF中创建了一个UserControl:

在Xaml中:

<UserControl x:Class="OutlookPanel.MailRelation"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Height="300" Width="300"
    xmlns:graph="clr-namespace:MyPanel"
>
 <DockPanel>
<graph:Graph Name="theGraph" NodesBindingPath="ChildNodes"
               NodeTemplateSelector="{StaticResource nodeTemplateSelector}">
..
 </DockPanel>
</UserControl>

我cs:

object theThing = e.Parameter;
                    ((MailRelation)sender).theGraph.CenterObject = theThing;

这句最后一句不起作用,因为无法访问图表。 知道为什么我可以访问图表吗?

由于

约翰

2 个答案:

答案 0 :(得分:1)

名称= “theGraph”

应该是

X:名称= “theGraph”

来自http://msdn.microsoft.com/en-us/library/ms752059.aspx

  

x:Name:指定运行时对象   存在的实例的名称   对象元素之后的运行时代码   已处理。对案例使用x:Name   命名元素的位置   等效的WPF框架级名称   属性不受支持。这个   发生在某些动画中   场景。

答案 1 :(得分:-2)

可能是因为该财产是私人的。提供一个公共吸气剂,你应该能够得到它。在您的代码中,添加类似

的内容
 public Graph TheGraph  { get { return theGraph; } }