46 lines
1.7 KiB
Plaintext
46 lines
1.7 KiB
Plaintext
|
|
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();
|
||
|
|
}
|
||
|
|
}
|
||
|
|
}
|