2009-10-02 14 views
0
Public Sub New(ByVal log As Entities.LogSystem) 
    InitializeComponent() 
    Me.DataContext = log 
End Sub 

Ceci est l'initialiseur de mon contrôle personnalisé. Il transmet une entité unique qui possède plusieurs champs de propriété. Ce contrôle est ajouté à un contrôle parent afin qu'il apparaisse dans un panneau de pile.WPF Liaison de données à des objets de collection personnalisés

Quoi qu'il en soit, je suis en train de récupérer les données spécifiques de ce contrôle dans plusieurs zones de texte différents:

<UserControl x:Class="LogSystemPickerItem" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="clr-namespace:WavelengthIS.WISRED.UserControls" 
    Width="579" Height="122"> 
    <UserControl.Resources> 
     <local:LogSystemPickerItem x:Key="Log"/> 
    </UserControl.Resources> 

    <Grid DataContext="{Binding Source={StaticResource Log}}"> 
     <Label Height="30" Name="Label1" VerticalAlignment="Top" Content="{Binding deptDescription}"/> 

    </Grid> 
</UserControl> 

Comme vous pouvez le voir, je nai pas vraiment eu trop loin. J'ai essayé plusieurs façons de le faire, y compris en utilisant les propriétés de dépendance ... Je ne peux pas vraiment trouver un tutoriel qui montre cette circonstance particulière ... quelqu'un peut me diriger dans la bonne direction?

Répondre

0

Si vous configurez le DataContext dans le code derrière selon votre premier extrait de code, il n'y a pas besoin de faire aussi dans le XAML, vous pouvez supprimer la ressource « Log » et l'affectation DataContext correspondante sur le Grid .

Une fois que vous avez fait cela, il devrait fonctionner en supposant qu'il existe une propriété deptDescription sur votre classe journal.

+0

doux qui a fonctionné. MAIS ... Je préférerais vraiment l'avoir dans le XAML pour que je puisse avoir accès au contrôle au moment du design. Je l'ai fait travailler avec un DataGrid, mais je ne pouvais pas comprendre comment le faire dans la zone de texte. J'ai aussi eu un problème de boîtier avec le deptDescription aurait dû être DeptDescription. Donc, j'ai le xaml correct aussi? c'est juste une question de/ou? – ecathell

0

... et en XAML vous pouvez le faire de cette façon ...

<UserControl.DataContext> 
    <local:LogSystemPickerItem/> 
</UserControl.DataContext> 
+0

cette façon de faire provoque mon IDE crash. – ecathell

Questions connexes