2012-02-03 4 views
33

başarısız Bağlama Aşağıdaki XAML var.ElementName

<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."> 

Bu başarısız bağlayıcı: MarkerEnabled="{Binding ElementName=DisplayMarkers, Path=IsChecked}"

Ben DisplayMarkers"' adlı benim Checkbox üzerinde IsChecked özelliğine bağlamak çalışıyorum zaman VS 2010 yılında ayıklama modunda, bu koşmak, çıkış penceresi başarısız bağlanmasını gösterir. Bu 'Onay Kutusu' adlı eleman bulamıyor. herkes ben VS alıyorum hatadır? neden

söyler misiniz :

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') 
+3

, sen de bir ContextMenu bu sorun haline aynı nedenle hiç şüphe çalıştırabilirsiniz. – BradleyDotNET

+1

Bunu, ana öğenin 'DataContext 'ayarlayarak ve buna bağlayarak çözdüm. 'DataContext =" {Binding ElementName = DisplayMarkers} "' – kjhf

cevap

79

Bağlamaya çalıştığınız bir adınız olmayabilir, Source={x:Reference DisplayMarkers} ile ElementName yapısını değiştirmeyi deneyebilirsiniz. Potansiyel döngüsel bağımlılık hatalara karşı geçici bir çözüm için

bkz: https://stackoverflow.com/a/6858917/546730

+0

Tam olarak doğru. Teşekkür ederim. Bu benim problemimi çözdü. Sorunu gerçekten bir isim kartı ile anlamıyorum ve bunu neden yapmam gerekiyor. Ama şimdilik çalışıyor. Hosea146 @ – Hosea146

+7

: bu özü görsel veya mantıksal ağaç olmayan XAML elementleri varsa RelativeSource' ve 'ElementName'' gibi belirli bağları kullanmak mümkün olmayacaktır yani, i DataSeries' olduğunu 'şüpheli herhangi bir ağacın içinde değil (bu soyut gibi görünüyor). –

+0

Not: Bu yalnızca .NET 4.0 ve üstü –

4

Ben Grafik, yazarı neyse FrameworkElement doğan veya tahmin ediyorum, onlar mantıksal için tüm alt öğelerini eklemek için gerekli olduğunu fark başarısız el ile veya bir geçersiz kılma yoluyla ağaç. Bunu türetirken bedavaya sahip değilsin. mantıksal ağaç Breaking

elementName tarafından bağlanma çocukların yeteneğini kırar. Gelecekteki kullanıcıları için

If you are the author of the Chart object, you can see this related question and answer.

İlgili konular