internal void Copy(object obj) { var urls = (obj as ObservableCollection <object>).Cast <UrlListType>(); string output = ""; foreach (var item in urls) { output += item.Url + '\n'; } _clipboard.Clear(); _clipboard.SetText(output); }
private async Task MonitorClipboardAsync() { _ctsClipboard = new CancellationTokenSource(); while (!_ctsClipboard.Token.IsCancellationRequested) { List <string> source = Regex.Replace(_clipboardService.GetText(), @"\t|\r", "").Split('\n').ToList(); List <string> dest = Regex.Replace(this.Urls, @"\r|\t", "").Split('\n').ToList(); foreach (var url in source) { var f_url = Regex.Replace(url, @"\n", ""); if ((f_url.Contains("http") || f_url.Contains("ftp")) && !dest.Contains(f_url)) { this.Urls += f_url + '\n'; _clipboardService.Clear(); } } RaisePropertyChanged(nameof(this.Urls)); await Task.Delay(1000); } _ctsClipboard = null; }