This is a quick demo of how to bind your TabItem visibility so that you can quickly change what’s visible using variable in your viewmodel code.
Create a Converter in a new class file Converters:
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Windows.Data; using System.Windows; namespace ConfigurationModule.Converters { [ValueConversion(typeof(bool), typeof(Visibility))] public class BoolToVisibilityConverter : IValueConverter { #region IValueConverter Members public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value is bool && targetType == typeof(Visibility)) { bool val = (bool)value; if (val) return Visibility.Visible; else if (parameter != null && parameter is Visibility) return parameter; else return Visibility.Collapsed; } throw new ArgumentException("Invalid argument/return type. Expected argument: bool and return type: Visibility"); } public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { if (value is Visibility && targetType == typeof(bool)) { Visibility val = (Visibility)value; if (val == Visibility.Visible) return true; else return false; } throw new ArgumentException("Invalid argument/return type. Expected argument: Visibility and return type: bool"); } #endregion } }
In the XAML header page add:
xmlns:converters="clr-namespace:.Converters"
In the XAML Tabcontrol: