Я пытаюсь связать 2 строки из FileSystemWatcher (Name, FullPath), если файл создан.Не поддерживается Исключение при привязке
Я использую ObservableCollection и, возможно, я использую его неправильно.
Это то, что я пытался
private void StartFileMonitor()
{
var _monitorFolders = new List<string> {
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData).Replace("Roaming", string.Empty),
Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
};
try {
foreach (var folder in _monitorFolders) {
// Check if Folder Exists
if (Directory.Exists(folder)) {
FileSystemWatcher _fileSysWatcher = new FileSystemWatcher();
_fileSysWatcher.Path = folder;
_fileSysWatcher.Filter = "*.*";
// Created
_fileSysWatcher.Created += (sender, e) => {
_fileMonitorEntries.Add(new FileMonitor {
FileName = e.Name, // Here is the Exception
FilePath = e.FullPath //
});
};
// Deleted
_fileSysWatcher.Deleted += (sender, e) => {
_fileMonitorEntries.Add(new FileMonitor {
FileName = e.Name,
FilePath = e.FullPath
});
};
_fileSysWatcher.EnableRaisingEvents = true;
}
}
lstFileMonitorEntries.ItemsSource = _fileMonitorEntries;
}
catch (Exception ex) {
MessageBox.Show(ex.Message);
}
}
Вот XML код
<ListBox Name="lstFileMonitorEntries" Height="358" Canvas.Left="292" Canvas.Top="10" Width="482" Background="#FF252222">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding FileName}" FontSize="15" FontFamily="Segeo WP Light" Foreground="White"/>
<TextBlock Text="{Binding FilePath}" FontSize="14" FontFamily="Segeo WP Light" Foreground="Red" />
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Кто-нибудь есть идея о том, что я делаю неправильно?
Как объявляется ваше обязательство? – Dan
Вы понимаете, что вы потенциально добавляете те же файлы в коллекцию дважды? –
Вы имеете в виду два обработчика событий и свойства? – iNCEPTION