2009-09-30 12 views
0

J'ai un Usercontrol dans une bibliothèque UserControl (assemblage séparé). J'ai dans mon code XAML comme ceci:Comment créer une base de données vers une propriété dans un contrôle UsF de WPF?

<UserControl x:Class="CenterTextTemplate.CenterTextTemplate" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
Name="Test" 
Height="Auto" 
Width="Auto">  
<Grid> 
    <!--<TextBlock Name="TextField" Text="{Binding Text}"></TextBlock>  --> 
    <Viewbox VerticalAlignment="Center" 
      HorizontalAlignment="Center"> 
     <TextBlock Name="TextField" 
        Text="{Binding Text, ElementName=Test}" 
        Foreground="Red" FontSize="50"> 
     </TextBlock> 
    </Viewbox> 
</Grid> 

Dans mon fichier .cs j'ai une propriété:

public string Text { get { return "test"; } } 

Lorsque je charge le usercontrol je ne vois pas le texte "test". .. y a-t-il quelque chose qui me manque? J'ai essayé de ne pas donner un nom au usercontrol, mais que le travail na pas non plus ...

EDIT:

Dans cette configuration, je reçois cette erreur:

Error 1 The type name 'CenterTextTemplate' does not exist in the type 'CenterTextTemplate.CenterTextTemplate' C:\Documents and Settings\Brian Hvarregaard\My Documents\Visual Studio 2008\Projects\GreenWeb Templates\CenterTextTemplate\CenterTextTemplate.xaml 4 37 CenterTextTemplate

Répondre

0

Vous devez utiliser une dépendance propriété à lier à une propriété. Voir ce link ainsi que la page msdn pour DependencyProperty.

+0

Mais je veux que pour définir les propriétés une fois quand je crée une instance de la usercontrol - isnt DependencyProperties un peu exagéré pour cela. Tout ce que je veux que le bloc de texte à faire est de prendre le texte de mon "texte" code derrière la propriété ... c'est tout – H4mm3rHead

0

Pour la liaison, vous devez le rendre DependencyProperty ou vous devez implémenter l'interface INotifyPropertyChanged. Si vous ne voulez pas aller dans un sens ou dans l'autre, n'utilisez pas de liaison, attribuez directement les valeurs.

Vous pouvez lier la propriété CLR à l'aide BindingMode = OneWayToSource

Questions connexes