gpt4 book ai didi

wpf - ElementName 绑定(bind)失败

转载 作者:行者123 更新时间:2023-12-03 07:36:35 26 4
gpt4 key购买 nike

我有以下 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.">

此绑定(bind)失败:MarkerEnabled="{Binding ElementName=DisplayMarkers, Path=IsChecked}"

我正在尝试绑定(bind)到名为“DisplayMarkers”的复选框上的 IsChecked 属性。当我在 VS 2010 的 Debug模式下运行此命令时,输出窗口显示绑定(bind)失败。它找不到名为的元素“复选框”。谁能告诉我为什么?

我从 VS 得到的错误是:

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

最佳答案

您可能没有尝试绑定(bind)的名称范围,您可以尝试将 ElementName 构造替换为 Source={x:Reference DisplayMarkers}

其要点是,如果 XAML 中有不在视觉或逻辑树中的元素,您将无法使用某些绑定(bind),例如 RelativeSourceElementName,我怀疑 DataSeries 也不在任何树中(听起来确实很抽象)。

有关潜在循环依赖错误的解决方法,请参阅:https://stackoverflow.com/a/6858917/546730

关于wpf - ElementName 绑定(bind)失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9122592/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com