Привязка WPF Combobox и SelectedValue с SelectedValuePathC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Привязка WPF Combobox и SelectedValue с SelectedValuePath

Сообщение Anonymous »

Я действительно борюсь с привязкой данных и методологией MVVM, хотя мне нравится концепция, с которой я только борюсь. Я создал форму WPF с несколькими списками и кнопкой. В первом поле со списком будут перечислены имена экземпляров базы данных. остальные поля со списком будут заполнены после нажатия кнопки. Поскольку у меня возникли проблемы с первым экземпляром базы данных, полем со списком, я покажу только свой код для него. При запуске приложения загружается поле со списком и, как и ожидалось, выбирается первый элемент. Проблема в том, что когда я выбираю новое имя, мой метод, который, как я ожидаю, будет вызван, не работает. Может ли кто-нибудь помочь мне понять, почему мой метод public DBInstance SelectedDBInstance не выполняется, когда у меня есть это в моем XAML, SelectedValue="{Binding SelectedDBInstance, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged?
Вот мой XAML для списка экземпляров базы данных. У меня есть один вопрос: «значение» для SelectedValuePath. Если я изменю его на «DBInstanceName», это не сработает.


Вот мой код ViewModel:
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();

}
}
}
}

Вот код моей модели. Когда я прохожу по коду, этот метод, публичная строка DBInstanceName, выполняется несколько раз. Я не знаю почему, и мне это кажется расточительным.
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
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение
  • Привязка WPF Combobox и SelectedValue с SelectedValuePath
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Проверка ComboBox SelectedValuePath не работает
    Anonymous » » в форуме C#
    0 Ответы
    15 Просмотры
    Последнее сообщение Anonymous
  • Avalonia.ui combobox, без дисплея или SelectedValuePath. Шаблонконтроль
    Anonymous » » в форуме C#
    0 Ответы
    6 Просмотры
    Последнее сообщение Anonymous
  • C# ComboBox SelectedValue сбрасывается при потере фокуса
    Anonymous » » в форуме C#
    0 Ответы
    25 Просмотры
    Последнее сообщение Anonymous
  • C# ComboBox SelectedValue сбрасывается при потере фокуса
    Anonymous » » в форуме C#
    0 Ответы
    22 Просмотры
    Последнее сообщение Anonymous

Вернуться в «C#»