您可以使用以下行中的某些内容:
<expander grid.column=“0”expanddirection=“right”width=“auto”isexpanded=“false”header=“options”background=“ecececec”padding=“5”>
<堆叠面板>
<label content=“columns:”fontweight=“semibold”/>
<itemsControl itemssource=“binding elementname=datagridname,path=columns”grid.issharedSizeScope=“true”margin=“5”>
<itemscontrol.itemspanel>
<项模板lt;itemspaneltemplate>
<stackpanel orientation=“垂直”/>
</itemspaneltemplate>
</itemscontrol.itemspanel>
<itemsControl.itemTemplate>
<数据模板>
<网格>
<grid.columndefinitions>
<columnDefinition sharedsizeGroup=“A”/>
<columnDefinition sharedsizeGroup=“b”/>
</grid.columndefinitions>
<textBlock text=“绑定头”margin=“20,5,5,0”/>gt;
<checkbox grid.column=“1”ischecked=“绑定可见性,converter=cnv:customVisibilityToBool collapsedValue=false,visibleValue=true”
margin=“5”horizontallight=“center”verticalalightment=“center”/>
和/格栅& GT;
</datatemplate>
</itemscontrol.itemstemplate>
</itemscontrol>
</stackpanel>
</expander>
< /代码>
转换器:
class customVisibilityToBool:markupExtension,ivalueConverter
{
public bool visiblevalue_get;set;
public bool collapsedvalue get;set;
public bool hiddenvalue_get;set;
公共重写对象ProvideValue(IServiceProvider ServiceProvider)
{
归还这个;
}
公共对象转换(对象值、类型TargetType、对象参数、CultureInfo Culture)
{
如果(值作为可见性?)==visibility.visible)返回visibleValue;
否则,如果(值作为可见性?)==visibility.hidden)返回hiddenvalue;
否则,如果(值作为可见性?)==visibility.collapsedvalue)返回collapsedvalue;
返回binding.donothing;
}
公共对象转换回(对象值、类型TargetType、对象参数、System.Globalization.CultureInfo Culture)
{
如果((值为bool?)==visibleValue)返回visibility.visible;
否则,如果((值为bool?)==hiddenvalue)返回visibility.hidden;
否则,如果((值为bool?)==collapsedvalue)返回visibility.collapsed;
返回binding.donothing;
}
}
< /代码>
如果将其放在datagrid

转换器:
class CustomVisibilityToBool : MarkupExtension, IValueConverter
{
public bool VisibleValue { get; set; }
public bool CollapsedValue { get; set; }
public bool HiddenValue { get; set; }
public override object ProvideValue(IServiceProvider serviceProvider)
{
return this;
}
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
if ((value as Visibility?) == Visibility.Visible) return VisibleValue;
else if ((value as Visibility?) == Visibility.Hidden) return HiddenValue;
else if ((value as Visibility?) == Visibility.Collapsed) return CollapsedValue;
return Binding.DoNothing;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if ((value as bool?) == VisibleValue) return Visibility.Visible;
else if ((value as bool?) == HiddenValue) return Visibility.Hidden;
else if ((value as bool?) == CollapsedValue) return Visibility.Collapsed;
return Binding.DoNothing;
}
}
如果你把它放在DataGrid看起来像:
