mvvm - Set the Visibility of Data Grid in WPF -
in application have 3 data grids in single xaml file. based on user selection want show 1 grid , hide other grids.
in view model class have boolean property each grid , based on selection setting true or false.but grids visible .
<datagrid visibility="{binding path=isgridvisible}" >
in view model setting isgridvisible value
public bool iscapexgridvisible { { return iscapexgridvisible; } set { iscapexgridvisible = value; raisepropertychangedevent("iscapexgridvisible"); } }
please provide ideas. thanks
visibility property on uielement not boolean. enum 3 values:
collapsed not display element, , not reserve space in layout.
hidden not display element, reserve space element in layout.
visible display element.
so in order set viewmodel should: - make property type of visibility (not best solution in world) - use converter binding trick of translating boolean visibility
public class booleantocollapsedconverter : ivalueconverter { public object convert(object value, type targettype, object parameter, cultureinfo culture) { if (targettype == typeof(visibility) && value bool) { return (bool)value ? visibility.visible : visibility.collapsed; } throw new formatexception(); } public object convertback(object value, type targettype, object parameter, cultureinfo culture) { throw new notimplementedexception(); } }
Comments
Post a Comment