45 votes

La liaison du nom d'élément échoue

J'ai le XAML suivant :

 <Grid>
    <Grid.RowDefinitions>
        ...
    </Grid.RowDefinitions>
    <DataGrid Grid.Row="0" ...>
        <DataGrid.Columns>
            ...
        </DataGrid.Columns>
    </DataGrid>

    <DockPanel Grid.Row="2">
        <CheckBox x:Name="DisplayMarkers" DockPanel.Dock="Top" Content="Display Data Points?"
                Margin="8,5,0,5" d:LayoutOverrides="Height" HorizontalAlignment="Left" IsChecked="False" />
        <vf:Chart DockPanel.Dock="Top" ScrollingEnabled="False" ZoomingEnabled="True" ToolBarEnabled="True">
            <vf:DataSeries AxisYType="Secondary" RenderAs="Line" DataSource="{Binding CdTeRoughnessList}"
                    XValueType="DateTime"
                    MarkerEnabled="{Binding ElementName=DisplayMarkers, Path=IsChecked}" Color="Navy"
                    LegendText="Roughness Std. Dev.">

Cette liaison échoue : MarkerEnabled="{Binding ElementName=DisplayMarkers, Path=IsChecked}"

J'essaie de me lier à la propriété IsChecked sur ma case à cocher nommée " DisplayMarkers ". Lorsque je l'exécute, en mode débogage dans VS 2010, la fenêtre de sortie indique que la liaison échoue. Il ne peut pas trouver l'élément nommé " Checkbox " Est-ce que quelqu'un pourrait me dire pourquoi ?

L'erreur que je reçois de VS est:

 System.Windows.Data Error: 4 : Cannot find source for binding with reference 

    'ElementName=DisplayMarkers'. BindingExpression:Path=IsChecked; DataItem=null; target element is 'DataSeries' (Name=''); target property is 'MarkerEnabled' (type 'Nullable`1')

2voto

JohnB Points 635

Pour les autres lecteurs, une autre cause possible est l'utilisation d'un UserControl au lieu d'un contrôle personnalisé pour ce qui est dans le rôle de vf:Chart , ci-dessus. J'ai écrit un bouton partagé (dans le rôle du graphique) et le changer d'un UserControl à un contrôle personnalisé a fait fonctionner ma liaison ElementName.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X