@ -31,6 +31,7 @@ namespace ICSharpCode.Data.Core.UI.Windows
private IDatasource _ selectedDatasource = null ;
private IDatasource _ selectedDatasource = null ;
private IDatabase _ selectedDatabase = null ;
private IDatabase _ selectedDatabase = null ;
private bool _ isLoading = false ;
private bool _ isLoading = false ;
IDatasource defaultDataSource = null ;
#endregion
#endregion
@ -47,22 +48,34 @@ namespace ICSharpCode.Data.Core.UI.Windows
get { return _ selectedDatabaseDriver ; }
get { return _ selectedDatabaseDriver ; }
set
set
{
{
if ( _ selectedDatabaseDriver ! = value ) {
defaultDataSource = GetDefaultDatasource ( value ) ;
_ selectedDatasource = defaultDataSource ;
} else if ( value = = null ) {
defaultDataSource = null ;
_ selectedDatasource = null ;
}
_ selectedDatabaseDriver = value ;
_ selectedDatabaseDriver = value ;
OnPropertyChanged ( "SelectedDatabaseDriver" ) ;
OnPropertyChanged ( "SelectedDatabaseDriver" ) ;
OnPropertyChanged ( "SelectedDatasource" ) ;
}
}
}
}
public IDatasource SelectedDatasource
IDatasource GetDefaultDatasource ( IDatabaseDriver driver )
{
{
if ( driver ! = null ) {
return driver . CreateNewIDatasource ( "" ) ;
}
return null ;
}
public IDatasource SelectedDatasource {
get { return _ selectedDatasource ; }
get { return _ selectedDatasource ; }
set
set {
{
if ( value ! = null )
if ( value ! = null )
btnConnect . IsEnabled = true ;
_ selectedDatasource = val ue;
else
else
btnConnect . IsEnabled = false ;
_ selectedDatasource = defaultDataSource ;
_ selectedDatasource = value ;
OnPropertyChanged ( "SelectedDatasource" ) ;
OnPropertyChanged ( "SelectedDatasource" ) ;
}
}
}
}
@ -177,6 +190,8 @@ namespace ICSharpCode.Data.Core.UI.Windows
private void btnConnect_Click ( object sender , RoutedEventArgs e )
private void btnConnect_Click ( object sender , RoutedEventArgs e )
{
{
if ( ! _ selectedDatabaseDriver . IDatasources . Contains ( _ selectedDatasource ) )
_ selectedDatasource . Name = cboDatasources . Text ;
PopulateDatabases ( ) ;
PopulateDatabases ( ) ;
}
}