using System; using System.Globalization; using System.Windows; using System.Windows.Data; using DTS.Common.Enums.Database; namespace DatabaseServices.Converters { public class DbTypeToVisibilityConverter : IMultiValueConverter { public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture) { var dbType = (DbType)((int)values[0]); var view = (DatabaseStatusBarView)values[1]; if (null == view.DataContext) { return Visibility.Collapsed; } var vm = (DatabaseStatusBarViewModel)view.DataContext; switch (vm.DatabaseType) { case DbType.RemoteOnly: return dbType == DbType.RemoteOnly ? Visibility.Visible : Visibility.Collapsed; case DbType.LocalOnly: return dbType == DbType.LocalOnly ? Visibility.Visible : Visibility.Collapsed; case DbType.RemoteLocalHybrid: { if (vm.RemoteConnected) { return dbType == DbType.RemoteOnly ? Visibility.Visible : Visibility.Collapsed; } return dbType == DbType.RemoteLocalHybrid ? Visibility.Visible : Visibility.Collapsed; } default: return Visibility.Collapsed; } } public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture) { throw new NotImplementedException(); } } }