Я действительно борюсь с привязкой данных и методологией MVVM, хотя мне нравится концепция, которую я просто борюсь. Я создал форму WPF, в которой есть несколько комбинированных комбо и кнопку. Первый ComboBox будет перечислять имена экземпляров базы данных. Оставшиеся комбинированные комбинезы будут заполнены после нажатия кнопки. Поскольку у меня возникают проблемы с первыми экземплярами базы данных, Combobox я покажу только свой код для этого. Когда приложение запускается, ComboBox загружается, и первый элемент выбирается, как и ожидалось. Проблема заключается в том, что я выбираю новое имя, мой метод, который я ожидаю, не позвонит. Может ли кто -нибудь помочь мне понять, почему мой метод public dbinstance selecteddbinstance не выполняется, когда у меня есть это в моем XAML, SelectedValue = "{Привязанность SelectedDbinStance, mode = twoway, updatesourcetrigger = PropertyChanged} ? p>
Вот мой XAML для экземпляров базы данных ComboBox.
< /code>
Вот мой код ViewModel: < /p>
namespace DatabaseTest.ViewModel
{
class RLFDatabaseTableViewModel : INotifyPropertyChanged
{
Utilities dbtUtilities = new Utilities();
public RelayCommand LoadDBInfoCommand
{
get;
set;
}
public RLFDatabaseTableViewModel()
{
LoadDBInstances();
LoadDBInfoCommand = new RelayCommand(LoadDBInfo);
}
public ObservableCollection DBInstances
{
get;
set;
}
public void LoadDBInstances()
{
ObservableCollection dbInstances = new ObservableCollection();
DataTable dt = SmoApplication.EnumAvailableSqlServers(false);
dbInstances.Add(new DBInstance { DBInstanceName = "fal-conversion\\mun2012ci" });
dbInstances.Add(new DBInstance { DBInstanceName = "fal-conversion\\mun2014ci" });
if (dt.Rows.Count > 0)
{
foreach (DataRow dr in dt.Rows)
{
dbInstances.Add(new DBInstance { DBInstanceName = dr["Name"].ToString() });
}
}
DBInstances = dbInstances;
}
private DBInstance _selectedDBInstance;
public DBInstance SelectedDBInstance
{
get
{
return _selectedDBInstance;
}
set
{
_selectedDBInstance = value;
RaisePropertyChanged("SelectedDBInstance");
//ClearComboBoxes();
}
}
}
}
< /code>
Вот мой код модели. Когда я прохожу код, этот метод, публичная строка dbinstancename , получает несколько раз. Я не знаю, почему и это кажется мне расточительным. < /P>
namespace DatabaseTest.Model
{
public class RLFDatabaseTableModel { }
public class DBInstance : INotifyPropertyChanged
{
private string strDBInstance;
public override string ToString()
{
return strDBInstance;
}
public string DBInstanceName
{
get
{
return strDBInstance;
}
set
{
if (strDBInstance != value)
{
strDBInstance = value;
RaisePropertyChanged("DBInstanceName");
}
}
}
public event PropertyChangedEventHandler PropertyChanged;
private void RaisePropertyChanged(string property)
{
if (PropertyChanged != null)
{
PropertyChanged(this, new PropertyChangedEventArgs(property));
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/430 ... dvaluepath
Связывание и выбранное значение WPF с SelectedValuePath ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
C# WPF MVVM Предотвратить выбранное значение Combobox перед выполнением выбора
Anonymous » » в форуме C# - 0 Ответы
- 88 Просмотры
-
Последнее сообщение Anonymous
-