<k:GridView Name="_masterGridView"
ItemsSource="{Binding ProductLocationList}"
SelectedItem="{Binding ProductLocationSelected}">
<!-- DataContext does not propagate here automatically in user control... why? -->
<k:GridView.ExportOptions>
<k:GridViewExportOptions Title="Production Location Management">
<k:SearchCriteria >
<k:SearchCriterion Title="End Date"
Value="{Binding SearchEndDate}"
ValueFormat="g" />
</k:SearchCriteria>
</k:GridViewExportOptions>
</k:GridView.ExportOptions>
<!-- to here -->
我必须这样做,它只会传播到GridViewExport选项
hack在GridView类中。
public GridViewExportOptions ExportOptions
{
get { return _exportOptions; }
set
{
_exportOptions = value;
if (value != null)
{
ExportOptions.SetBinding(FrameworkContentElement.DataContextProperty,
new Binding("DataContext")
{
Source = this,
Mode = BindingMode.TwoWay
});
}
}
}
最佳答案
您需要将GridViewExportOptions
添加为逻辑子级。实际上,您的GridViewExportOptions
必须从FrameworkElement
派生。更改属性后,必须在GridView
上为AddLogicalChild(和RemoveLogicalChild才能删除旧值,如果有的话)。然后,您必须在GridView
上覆盖LogicalChildren并包含您的选项。
关于“孩子”,您也需要在您的GridViewExportOptions
类中执行此操作。
关于c# - DataContext不会传播到自定义控件中的子级(非可视),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/6736793/