美好的一天,WPF列表框不刷新
我有一个WPF MVVM应用程序,允许用户将项目拖入列表框。这项工作第一次成功。但是,如果需要,我需要能够将更多项目拖到列表框中。
<!-- XAML FileSelectionView.xaml -->
<ListBox x:Name="listboxFileGroups"
ItemsSource="{Binding ImportGroups, Mode=TwoWay}"
SelectedItem="{Binding Path=SelectedValue,
Mode=TwoWay}"
Style="{StaticResource myListboxStyle}"
helper:FocusExtension.IsFocused="{Binding IsImportGroupsFocused}"
telerik:RadDragAndDropManager.AllowDrop="True"
telerik:RadDragAndDropManager.DropInfo="OnDropInfo"
telerik:RadDragAndDropManager.DropQuery="OnDropQuery" />
这里是我的视图模型(FileSelectionViewModel.cs)的有关代码不执行INotifyPropertyChanged:
// This is the data source of the top listbox
private ObservableCollection<string> importGroups;
public ObservableCollection<string> ImportGroups
{
get
{
System.Diagnostics.Debug.WriteLine("Retrieving Top Level Import Groups...");
importGroups = fileImportProcess.ImportGroups;
return importGroups;
}
set
{
importGroups = value;
fileImportProcess.ImportGroups = importGroups;
System.Diagnostics.Debug.WriteLine("Initializing Top Level Import Groups...");
OnPropertyChanged("ImportGroups");
}
}
FileSelectionViewModel.cs然后采取这些变化,并将它们propogates成一类称为FileImportProcess.cs (这也实现INotifyPropertyChanged),它看起来像:
// This is the data source for FileSelection
private ObservableCollection<string> importGroups;
public ObservableCollection<string> ImportGroups
{
get
{
System.Diagnostics.Debug.WriteLine("Retrieving Lower Level Import Groups");
return parsedFiles.Keys.ToList().ToObservableCollection<string>();
}
set
{
importGroups = value;
System.Diagnostics.Debug.WriteLine("Initializing Lower Level Import Groups");
foreach (var item in importGroups)
{
System.Diagnostics.Debug.WriteLine("==> " + item.ToString());
}
OnPropertyChanged("ImportGroups");
}
}
的问题我有是我第一次拖三个文件放入列表框中,全部工作正常。当我尝试将更多文件拖入列表框时,FileImportProcess.cs类将确认我选择的额外文件,但不会将事件传播回FileSelectionViewModel.cs。这里是我的示例输出:
Initializing Lower Level Import Groups
==> Import Group 1
==> Import Group 2
==> Import Group 3
Retrieving Top Level Import Groups...
Retrieving Lower Level Import Groups
Retrieving Top Level Import Groups...
Retrieving Lower Level Import Groups
Retrieving Top Level Import Groups...
Retrieving Lower Level Import Groups
0 - C:\Dropbox\Dropbox-Logs\NSN_2013_02_20_eNodeB_Funktion_Load_M8000-10.csv
1 - C:\Dropbox\Dropbox-Logs\NSN_2013_02_20_ENODEB_FUNKTION_LOAD_M8018-22.csv
2 - C:\Dropbox\Dropbox-Logs\NSN_2013_02_20_ENB_Transport_Load_M8004-11.csv
3 - C:\Dropbox\Dropbox-Logs\NSN_2013_02_20_EUTRAN_RELATION_HO_M8015-20.csv
4 - C:\Dropbox\Dropbox-Logs\NSN_2013_02_20_EUTRANCELL_BEARER_M8007-13.csv
5 - C:\Dropbox\Dropbox-Logs\NSN_2013_02_20_EUTRANCELL_ENB_HO_M8009-15.csv
6 - C:\Dropbox\Dropbox-Logs\NSN_2013_02_20_EUTRANCELL_HO_M8021-24.csv
Initializing Lower Level Import Groups
==> Import Group 1
==> Import Group 2
==> Import Group 3
==> Import Group 4
==> Import Group 5
==> Import Group 6
==> Import Group 7
正如你所看到的,我第一次将文件拖动,视图模型检索ImportGroups。第二次拖动附加文件时,我收到输入文件,但列表框未正确更新。
编辑***我没有看到在输出窗口以任何形式表明什么是错的数据绑定***
任何想法?
TIA,
COSON
这没有奏效。 – coson