2009-04-27 2 views
1

Я создал UserControl в WPF:Доступ XAML объект из кода

В 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> 

I CS:

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

Это последнее предложение не работает, как theGraph не доступен , Любая идея, почему я могу получить доступ к графику?

Благодаря

Джон

ответ

1

Name = "theGraph"

должен быть

х: Name = "theGraph"

из http://msdn.microsoft.com/en-us/library/ms752059.aspx

х: Name: Указывает объект времени выполнения имя экземпляра, который существует в.код выполнения после элемента объекта обрабатывается. Вы используете x: имя для случаев элементов наименования, где эквивалентное значение уровня фреймворка WPF. Имя свойство не поддерживается. Это происходит в определенной анимации сценариев.

+0

Вау, это правда ... Можете ли вы объяснить разницу? – user96547

+0

Зависит от того, что такое График. В каком классе он распространяется? –

+0

Если объект, с которым вы работаете, уже не содержит поля Name, вы можете использовать x: Name, которое, я считаю, является расширенным свойством. –

-2

Вероятно потому, что собственность является частной. Предоставьте публичный геттер, и вы сможете его получить. В своем коде, добавить что-то вроде

public Graph TheGraph { get { return theGraph; } } 
+0

Привет, Нет, это не работает: общественного класса MailRelation частичное: UserControl { общественного Graph TheGraph {получить {вернуться theGraph; }} статический MailRelation() {} графа тоже не видел ... Джон – user96547

+0

Обычно это была моя проблема. Вы изменили другую строку кода, чтобы использовать TheGraph вместо Graph? –