español - wpf binding textbox
La vinculación de ElementName está fallando (2)
Tengo el siguiente XAML:
<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.">
Este enlace está fallando: MarkerEnabled="{Binding ElementName=DisplayMarkers, Path=IsChecked}"
Intento unirme a la propiedad IsChecked en mi Checkbox llamada ''DisplayMarkers''. Cuando ejecuto esto, en modo de depuración en VS 2010, la ventana de salida muestra que el enlace está fallando. No puede encontrar el elemento llamado ''Checkbox''. ¿Alguien podría decirme por qué?
El error que recibo de VS es:
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'')
Es posible que no tenga un namescope donde intente vincular, podría intentar reemplazar el constructo ElementName
con Source={x:Reference DisplayMarkers}
.
Para obtener una solución para posibles errores de dependencia cíclica, consulte: https://.com/a/6858917/546730
Supongo que el escritor de Chart, al derivarse de FrameworkElement o lo que sea, no se dio cuenta de que necesitaban agregar elementos secundarios al árbol lógico, ya sea manualmente o mediante una anulación. No obtienes eso de forma gratuita al derivar.
Romper el árbol lógico rompe la capacidad de los niños para vincular por ElementName.
Si usted es el autor del objeto Chart, puede ver esta pregunta y respuesta relacionadas.