Я создал UserControl в WPF:
В 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 недоступен. Любая идея, почему я могу получить доступ к графу?
Спасибо
John
Name = "theGraph"
должно быть
х: Name = "theGraph"
из http://msdn.microsoft.com/en-us/library/ms752059.aspx
x: Имя: указывает объект времени выполнения. имя для экземпляра, который существует в код времени выполнения после элемента объекта обрабатывается. Вы используете x: Name для случаев именования элементов, где эквивалентное имя уровня структуры WPF свойство не поддерживается. это происходит в определенной анимации сценарии.
Возможно, потому что это свойство является частным. Предоставьте публичный получатель, и вы сможете его получить. В своем коде добавьте что-то вроде
public Graph TheGraph { get { return theGraph; } }