これは、データバインディングと INotifyPropertyChanged の実装に関する他の多数のスレッドで回答されています。しかし、私はまだこれを機能させるのに苦労しています。
ユーザーが最初のリストボックスからサーバー名を選択すると、2番目のリストボックスはそのサーバー上のデータベースのリストを提供することになっています。ものすごく単純。ただし、2 番目のリストボックスには、更新されたデータベースのリストが表示されません。
コードは次のとおりです。クエリを実行し、DatabaseList プロパティにデータを追加するコード。
private void selection_Server_SelectionChangeCommitted(object sender, EventArgs e)
{
server = (string)selection_Server.SelectedItem;
try
{
ExecDBList(server, ref vm);
}
ウィンドウで使用されるプロパティを管理するクラス。
public class VM : INotifyPropertyChanged
{
private static List<string> _dblist;
public List<string> DatabaseList
{
get
{
return _dblist;
}
set
{
if (_dblist != value)
{
_dblist = value;
};
}
}
public VM() { }
void OnPropertyChanged(string PropertyName)
{
PropertyChanged(this, new PropertyChangedEventArgs(PropertyName));
}
public event PropertyChangedEventHandler PropertyChanged;
リストボックス DataSource を割り当てる MainWindow 初期化のコード行
selection_RDM.DataSource = vm.DatabaseList;
データバインディングとPropertyChangedEventHandlerの使用に対する以前の回答を理解するのに苦労しているため、これを機能させるための助けをいただければ幸いです。
ありがとうリチャード