2009-04-27 9 views
1

j'ai créé un UserControl WPF:Accès objet XAML à partir du code

En 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; 

Cette dernière phrase ne fonctionne pas comme theGraph est pas accessible . Une idée de pourquoi je peux accéder au graphique?

Merci

John

Répondre

1

Name = "theGraph"

devrait être

x: Name = "theGraph"

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

x: Nom: spécifie un objet d'exécution nom de l'instance qui existe dansCode d'exécutionaprès le traitement d'un élément d'objet . Vous utilisez x: Nom pour les cas des éléments de dénomination où la propriété équivalente au niveau du cadre WPF au niveau de l'infrastructure n'est pas prise en charge. Ce se produit dans certains scénarios d'animation .

+0

Wow, c'est vrai ... Pouvez-vous expliquer la différence? – user96547

+0

Dépend de ce que Graph est. Quelle classe s'étend-elle? –

+0

si l'objet avec lequel vous travaillez ne contient pas déjà un champ Nom, vous pouvez utiliser x: Name, qui est une propriété étendue. –

-2

Probablement parce que la propriété est privée. Fournir un getter public et vous devriez être capable de l'obtenir. Dans votre code, ajouter quelque chose comme

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

Salut, Non, il ne fonctionne pas: public partial class MailRelation: UserControl { publique Graphique TheGraph {get {return theGraph; }} MailRelation statique() {} le graphique est également pas vu ... John – user96547

+0

En général, qui a été mon problème. Avez-vous changé l'autre ligne de code pour utiliser TheGraph au lieu duGraph? –

Questions connexes