2010-11-22 6 views
2

J'ai un contrôle WPF (ControlA) qui fait référence à un autre contrôle (ControlB) comme ceci:Comment lier la propriété d'un contrôle à un autre?

<Grid> 
    <controls:ControlB x:Name="ControlB" />   
    <my:DataGrid 
     x:Name="dataGridBackup" 
     ItemsSource="{Binding}" 
     AutoGenerateColumns="False" > 
     <my:DataGrid.Columns> 
      <my:DataGridCheckBoxColumn 
       Header="Connectable" 
       Binding="{Binding Connectable}" /> 
     </my:DataGrid.Columns> 
    </my:DataGrid> 
</Grid> 

Maintenant en ControlB j'ai un bouton et je veux lier la propriété IsEnabled à la colonne Connectable de ma grille sur controlA.

Je peux le faire fonctionner quand j'ai les contrôles sur la même page, mais pas dans le scénario aboce. J'ai essayé avec

<Button 
    IsEnabled="{Binding ElementName=dataGridBackup, Path=SelectedItem.Connectable}"> 
</Button> 

Répondre

1

bouton à l'intérieur ControlB n'a aucun moyen normal de savoir ce qui est en dehors du contrôle ControlB. Une solution possible consiste à ajouter une propriété de dépendance booléenne à ControlB comme IsConnectable. En XAML de contrôle ControlA, lier la propriété à dataGridBackup avec le chemin, comme vous l'avez fait. Dans XAML du contrôle ControlB, liez la propriété IsEnabled du bouton à IsConnectable de ControlB.

Questions connexes