【发布时间】:2013-07-07 03:44:33
【问题描述】:
我必须传递 GridControl 的 CommandParameter 来进行布局的序列化。
我执行命令的按钮在子用户控件中。
我已成功使用 RelativeSource 来访问包含 GridControl 的网格。
编辑: 此按钮位于名为 GridSettings.xaml 的用户控件中。这是 Grid.xaml 的子项。
<Button Content="Save Defaults" Command="{Binding SaveDefaultsCommand}" Width="90" CommandParameter="{Binding Path=gridControl1, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}, AncestorLevel=2}}"/>
这里是 Grid.xaml 父视图的相关部分。
<Grid Grid.Row="1" x:Name="GridView">
<dxg:GridControl x:Name="gridControl1" ItemsSource="{Binding WeldReports}" AutoPopulateColumns="True" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" >
<i:Interaction.Triggers>
<i:EventTrigger EventName="Loaded">
<Custom:EventToCommand Command="{Binding GridLoadedCommand}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
<dxg:GridControl.View>
<dxg:TableView Name="tableView1" ShowTotalSummary="True" />
</dxg:GridControl.View>
</dxg:GridControl>
</Grid>
我得到的错误: System.Windows.Data 错误:40:BindingExpression 路径错误:在“对象”“网格”(名称=“GridView”)上找不到“gridControl1”属性。绑定表达式:路径=gridControl1; DataItem='Grid' (Name='GridView');目标元素是 'Button' (Name='');目标属性是'CommandParameter'(类型'Object')
Path=gridControl1 实际上应该是 ElementName=gridControl1...但是 ElementName 不适用于 RelativeSource...所以我读了。
【问题讨论】:
-
请分享你的gridview Xaml
-
我复制了代码,但忘记粘贴问题。使用 xaml 编辑的原始问题。
标签: wpf xaml binding relativesource