public void BUG__0001__CollectionIsReadOnlyAfterInstanceCreated_NothingCanBeAdded() { var col = new ObservableCollectionEx<object>(); col.Add(1); Assert.IsTrue(true); }
private void UpdateProvider(ISecurityProvider provider) { if (_securityProvider == provider) return; if (_securityProvider != null) { _securityProvider.Added -= AddSecurities; _securityProvider.Removed -= RemoveSecurities; _securityProvider.Cleared -= ClearSecurities; SecurityTextBox.ItemsSource = Enumerable.Empty<Security>(); _itemsSource = null; } _securityProvider = provider; if (_securityProvider == null) return; var itemsSource = new ObservableCollectionEx<Security>(); _itemsSource = new ThreadSafeObservableCollection<Security>(itemsSource); _itemsSource.AddRange(_securityProvider.LookupAll()); _securityProvider.Added += AddSecurities; _securityProvider.Removed += RemoveSecurities; _securityProvider.Cleared += ClearSecurities; SecurityTextBox.ItemsSource = itemsSource; }
/// <summary> /// Initializes a new instance of the <see cref="CommissionPanel"/>. /// </summary> public CommissionPanel() { InitializeComponent(); var itemsSource = new ObservableCollectionEx<RuleItem>(); RuleGrid.ItemsSource = itemsSource; _rules = new ConvertibleObservableCollection<ICommissionRule, RuleItem>(new ThreadSafeObservableCollection<RuleItem>(itemsSource), CreateItem); var ruleTypes = new[] { typeof(CommissionPerOrderCountRule), typeof(CommissionPerOrderRule), typeof(CommissionPerOrderVolumeRule), typeof(CommissionPerTradeCountRule), typeof(CommissionPerTradePriceRule), typeof(CommissionPerTradeRule), typeof(CommissionPerTradeVolumeRule), typeof(CommissionSecurityIdRule), typeof(CommissionSecurityTypeRule), typeof(CommissionTurnOverRule), typeof(CommissionBoardCodeRule) }; _names.AddRange(ruleTypes.ToDictionary(t => t, t => t.GetDisplayName())); TypeCtrl.ItemsSource = _names; TypeCtrl.SelectedIndex = 0; }
/// <summary> /// Initializes a new instance of the <see cref="RiskPanel"/>. /// </summary> public RiskPanel() { InitializeComponent(); var ruleTypes = new[] { typeof(RiskCommissionRule), typeof(RiskOrderFreqRule), typeof(RiskOrderPriceRule), typeof(RiskOrderVolumeRule), typeof(RiskPnLRule), typeof(RiskPositionSizeRule), typeof(RiskPositionTimeRule), typeof(RiskSlippageRule), typeof(RiskTradeFreqRule), typeof(RiskTradePriceRule), typeof(RiskTradeVolumeRule) }; _names.AddRange(ruleTypes.ToDictionary(t => t, t => t.GetDisplayName())); TypeCtrl.ItemsSource = _names; TypeCtrl.SelectedIndex = 0; var itemsSource = new ObservableCollectionEx<RuleItem>(); RuleGrid.ItemsSource = itemsSource; _rules = new ConvertibleObservableCollection<IRiskRule, RuleItem>(new ThreadSafeObservableCollection<RuleItem>(itemsSource), CreateItem); }
public MainWindow() { InitializeComponent(); var assetsSource = new ObservableCollectionEx<Security>(); var optionsSource = new ObservableCollectionEx<Security>(); Options.ItemsSource = optionsSource; Assets.ItemsSource = assetsSource; _assets = new ThreadSafeObservableCollection<Security>(assetsSource); _options = new ThreadSafeObservableCollection<Security>(optionsSource); // попробовать сразу найти месторасположение Quik по запущенному процессу Path.Text = QuikTerminal.GetDefaultPath(); var timer = new DispatcherTimer { Interval = TimeSpan.FromSeconds(5) }; timer.Tick += (sender, args) => { if (!_isDirty) return; _isDirty = false; RefreshChart(); }; timer.Start(); // // добавляем тестовый данные для отображения графика var asset = new Security { Id = "RIM4@FORTS" }; Connector = new FakeConnector(new[] { asset }); PosChart.AssetPosition = new Position { Security = asset, CurrentValue = -1, }; PosChart.MarketDataProvider = Connector; PosChart.SecurityProvider = Connector; var expDate = new DateTime(2014, 6, 14); PosChart.Positions.Add(new Position { Security = new Security { Code = "RI C 110000", Strike = 110000, ImpliedVolatility = 45, OptionType = OptionTypes.Call, ExpiryDate = expDate, Board = ExchangeBoard.Forts, UnderlyingSecurityId = asset.Id }, CurrentValue = 10, }); PosChart.Positions.Add(new Position { Security = new Security { Code = "RI P 95000", Strike = 95000, ImpliedVolatility = 30, OptionType = OptionTypes.Put, ExpiryDate = expDate, Board = ExchangeBoard.Forts, UnderlyingSecurityId = asset.Id }, CurrentValue = -3, }); PosChart.Refresh(100000, 10, new DateTime(2014, 5, 5), expDate); Instance = this; }
public UserDatabase() { XDocument doc = Open(); Users = new ObservableCollectionEx<User>(from u in doc.Descendants(Tags.User) select new User(u)); using (IsolatedStorageFile isf = IsolatedStorageFile.GetUserStoreForApplication()) { foreach (var user in Users) { foreach (var download in user.Downloads) { string path = Utils.MediaFilePath(user, download); if (isf.FileExists(path)) { using (var fileStream = isf.OpenFile(path, FileMode.Open)) { download.DownloadedBytes = fileStream.Length; } } } } } Users.CollectionChanged += (sender, e) => { Save(true); }; }
public void AddRangeOnlyRaisesOneCollectionChangedEventAtTheEnd() { var oc = new ObservableCollectionEx<string>(); var toAdd = new List<string> { "Foo", "Bar" }; var itemCount = 0; var eventCount = 0; var action = NotifyCollectionChangedAction.Add; IList<string> addedItems = null; oc.CollectionChanged += (sender, args) => { ++eventCount; itemCount = oc.Count; action = args.Action; addedItems = args.NewItems.OfType<string>().ToList(); }; oc.AddRange(toAdd); itemCount.Should().Be(2); eventCount.Should().Be(1); action.Should().Be(NotifyCollectionChangedAction.Add); addedItems.Should().NotBeNull(); addedItems.ShouldBeEquivalentTo(toAdd); }
public CandlesWindow() { InitializeComponent(); var candlesSource = new ObservableCollectionEx<QuikCandle>(); CandleDetails.ItemsSource = candlesSource; Candles = new ThreadSafeObservableCollection<QuikCandle>(candlesSource); }
public Device(Guid id, string name, string description = null, ISpatialLocation location = null) : base(id, name, description) { Location = location; Recordables = new ObservableCollectionEx<IRecordable, Guid>(); Recordables.Added.Subscribe(OnRecordablesAdded); Recordables.Removed.Subscribe(OnRecordablesRemoved); }
/// <summary> /// Initializes a new instance of the <see cref="PortfolioPickerWindow"/>. /// </summary> public PortfolioPickerWindow() { InitializeComponent(); var itemsSource = new ObservableCollectionEx<Portfolio>(); PortfoliosCtrl.ItemsSource = itemsSource; Portfolios = new ThreadSafeObservableCollection<Portfolio>(itemsSource); }
public SearchItemEditWindow(ref SearchItem searchItem) { _searchItem = searchItem; InitializeComponent(); { var icon = new BitmapImage(); icon.BeginInit(); icon.StreamSource = new FileStream(Path.Combine(App.DirectoryPaths["Icons"], "Amoeba.ico"), FileMode.Open, FileAccess.Read, FileShare.Read); icon.EndInit(); if (icon.CanFreeze) icon.Freeze(); this.Icon = icon; } lock (_searchItem.ThisLock) { _searchTreeViewItemNameTextBox.Text = _searchItem.Name; _nameCollection = new ObservableCollectionEx<SearchContains<string>>(_searchItem.SearchNameCollection); _nameRegexCollection = new ObservableCollectionEx<SearchContains<SearchRegex>>(_searchItem.SearchNameRegexCollection); _signatureCollection = new ObservableCollectionEx<SearchContains<SearchRegex>>(_searchItem.SearchSignatureCollection); _keywordCollection = new ObservableCollectionEx<SearchContains<string>>(_searchItem.SearchKeywordCollection); _creationTimeRangeCollection = new ObservableCollectionEx<SearchContains<SearchRange<DateTime>>>(_searchItem.SearchCreationTimeRangeCollection); _lengthRangeCollection = new ObservableCollectionEx<SearchContains<SearchRange<long>>>(_searchItem.SearchLengthRangeCollection); _seedCollection = new ObservableCollectionEx<SearchContains<Seed>>(_searchItem.SearchSeedCollection); _stateCollection = new ObservableCollectionEx<SearchContains<SearchState>>(_searchItem.SearchStateCollection); } _searchTreeViewItemNameTextBox_TextChanged(null, null); _nameListView.ItemsSource = _nameCollection; _nameRegexListView.ItemsSource = _nameRegexCollection; _signatureListView.ItemsSource = _signatureCollection; _keywordListView.ItemsSource = _keywordCollection; _creationTimeRangeListView.ItemsSource = _creationTimeRangeCollection; _lengthRangeListView.ItemsSource = _lengthRangeCollection; _seedListView.ItemsSource = _seedCollection; _stateListView.ItemsSource = _stateCollection; _nameListViewUpdate(); _nameRegexListViewUpdate(); _signatureListViewUpdate(); _keywordListViewUpdate(); _creationTimeRangeListViewUpdate(); _lengthRangeListViewUpdate(); _seedListViewUpdate(); _stateListViewUpdate(); foreach (var item in Enum.GetValues(typeof(SearchState)).Cast<SearchState>()) { _stateComboBox.Items.Add(item); } _stateComboBox.SelectedIndex = 0; }
/// <summary> /// Initializes a new instance of the <see cref="Level1Grid"/>. /// </summary> public Level1Grid() { InitializeComponent(); var itemsSource = new ObservableCollectionEx<Level1ChangeMessage>(); ItemsSource = itemsSource; _messages = new ThreadSafeObservableCollection<Level1ChangeMessage>(itemsSource) { MaxCount = 10000 }; }
/// <summary> /// Initializes a new instance of the <see cref="MyTradeGrid"/>. /// </summary> public MyTradeGrid() { InitializeComponent(); var itemsSource = new ObservableCollectionEx<MyTrade>(); ItemsSource = itemsSource; _trades = new ThreadSafeObservableCollection<MyTrade>(itemsSource) { MaxCount = 10000 }; }
/// <summary> /// Создать <see cref="NewsGrid"/>. /// </summary> public NewsGrid() { InitializeComponent(); var itemsSource = new ObservableCollectionEx<News>(); ItemsSource = itemsSource; _news = new ThreadSafeObservableCollection<News>(itemsSource) { MaxCount = 10000 }; }
/// <summary> /// Initializes a new instance of the <see cref="OrderLogGrid"/>. /// </summary> public OrderLogGrid() { InitializeComponent(); var itemsSource = new ObservableCollectionEx<OrderLogItem>(); ItemsSource = itemsSource; _items = new ThreadSafeObservableCollection<OrderLogItem>(itemsSource) { MaxCount = 100000 }; }
public SimpleListViewModel() { items = new ObservableCollectionEx<string>() { "Alpha", "Beta", "Gamma" }; }
public ImageShrinkerViewModel() { ImageThumbs = new ObservableCollectionEx<ImageThumbViewModel>(); Scale = 100; Quality = 90; ArchiveName = "BilderArchiv"; _filenames = new Dictionary<string, string>(); _selectedThumb = null; }
/// <summary> /// Initializes a new instance of the <see cref="ExecutionGrid"/>. /// </summary> public ExecutionGrid() { InitializeComponent(); var itemsSource = new ObservableCollectionEx<ExecutionMessage>(); ItemsSource = itemsSource; _messages = new ThreadSafeObservableCollection<ExecutionMessage>(itemsSource) { MaxCount = 1000000 }; }
public void ObsCollExCollectionChangedTest() { ObservableCollectionEx<string> target = new ObservableCollectionEx<string>(); target.CollectionChanged += new System.Collections.Specialized.NotifyCollectionChangedEventHandler(target_CollectionChanged); target.Add("Walter White"); Assert.AreEqual(NotifyCollectionChangedAction.Add,_Args.Action); Assert.AreEqual(1, _Args.NewItems.Count); Assert.AreEqual("Walter White", _Args.NewItems[0]); _Args = null; }
public SignatureTreeViewModel(TreeViewModelBase parent, SignatureTreeItem value) : base(parent) { if (value == null) throw new ArgumentNullException(nameof(value)); _children = new ObservableCollectionEx<TreeViewModelBase>(); _readonlyChildren = new ReadOnlyObservableCollection<TreeViewModelBase>(_children); this.Value = value; }
/// <summary> /// Initializes a new instance of the <see cref="PortfolioComboBox"/>. /// </summary> public PortfolioComboBox() { DisplayMemberPath = "Name"; var itemsSource = new ObservableCollectionEx<Portfolio>(); ItemsSource = itemsSource; Portfolios = new ThreadSafeObservableCollection<Portfolio>(itemsSource); Connector = ConfigManager.TryGetService<IConnector>(); }
public MainWindow() { InitializeComponent(); var errorSource = new ObservableCollectionEx<SettingsError>(); Results.ItemsSource = errorSource; _settingErrors = new ThreadSafeObservableCollection<SettingsError>(errorSource); FindTerminals(); }
public MyPlexConnection(IRestConnection restConnection) { _restConnection = restConnection; _devices = new ObservableCollectionEx<Device>(); _servers = new ObservableCollectionEx<Device>(); _players = new ObservableCollectionEx<Device>(); Devices = new ReadOnlyObservableCollection<Device>(_devices); Servers = new ReadOnlyObservableCollection<Device>(_servers); Players = new ReadOnlyObservableCollection<Device>(_players); }
public ChatPanel() { InitializeComponent(); var context = new ObservableCollectionEx<RoomItem>(); ChatRoomsTree.DataContext = context; _chatRooms = new ThreadSafeObservableCollection<RoomItem>(context); WhenLoaded(ChatControl_OnLoaded); }
public User(string username, string password) { LocalId = Guid.NewGuid(); Username = username; Password = password; Settings = new Settings(); Libraries = new ObservableCollectionEx<Library>(); Downloads = new ObservableCollectionEx<QueuedDownload>(); Save(true); SubscribeForComponentChanges(); }
public ObservableCollectionEx<TwitterStatusModel> GetFeed(Uri twitterFeed = null) { if (twitterFeed == null) { twitterFeed = new Uri(Settings.TwitterFeedUri); } var twitterStatus = new ObservableCollectionEx<TwitterStatusModel>(); RetrieveTwitterValues(twitterFeed, twitterStatus); return twitterStatus; }
private void FillBoards(IExchangeInfoProvider provider) { var itemsSource = new ObservableCollectionEx<ExchangeBoard> { _emptyBoard }; var boards = new ThreadSafeObservableCollection<ExchangeBoard>(itemsSource); boards.AddRange(provider.Boards); provider.BoardAdded += boards.Add; Boards = boards; }
/// <summary> /// Initializes a new instance of the <see cref="PortfolioGrid"/>. /// </summary> public PortfolioGrid() { InitializeComponent(); var itemsSource = new ObservableCollectionEx<PositionItem>(); ItemsSource = itemsSource; _positions = new ConvertibleObservableCollection<BasePosition, PositionItem>(new ThreadSafeObservableCollection<PositionItem>(itemsSource), p => new PositionItem(p)); GroupingColumns.Add(Columns[0]); }
public ListViewModel() { DataCollection = new ObservableCollectionEx<CmdArgItem>(); DataCollectionView = CollectionViewSource.GetDefaultView(DataCollection); if (DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject())) { DataCollection.Add(new CmdArgItem() { Enabled = true, Command = @"C:\Users\Markus\Desktop\" }); DataCollection.Add(new CmdArgItem() { Enabled = false, Command = "Hello World" }); DataCollection.Add(new CmdArgItem() { Enabled = true, Command = "A very long commandline to test very long commandlines to see how very long commandlines work in our UI." }); } }
private void SetPaths(IEnumerable<PathEntry> systemPath, IEnumerable<PathEntry> userPath) { lock(stateLock) { SystemPath = new ObservableCollectionEx<AnnotatedPathEntry>(systemPath.Select(AnnotatedPathEntry.FromPath)); UserPath = new ObservableCollectionEx<AnnotatedPathEntry>(userPath.Select(AnnotatedPathEntry.FromPath)); DirtyPaths(); SystemPath.CollectionChanged += (a, b) => DirtyPaths(); UserPath.CollectionChanged += (a, b) => DirtyPaths(); } }
/// <summary> /// Initializes a new instance of the <see cref="ExchangeBoardComboBox"/>. /// </summary> public ExchangeBoardComboBox() { IsEditable = true; var itemsSource = new ObservableCollectionEx <ExchangeBoard> { _emptyBoard }; _boards = new ThreadSafeObservableCollection <ExchangeBoard>(itemsSource); //_boards.AddRange(ExchangeBoard.EnumerateExchangeBoards().OrderBy(b => b.Code)); DisplayMemberPath = "Code"; Boards = _boards; ItemsSource = Boards; SelectedBoard = _emptyBoard; }
public EditorViewModel(TargetPlatform platform, IEnumerable <IObjectEditor> editors) { if (platform == null) { throw new ArgumentNullException(nameof(platform)); } if (editors == null) { throw new ArgumentNullException(nameof(editors)); } TargetPlatform = platform; var observableEditors = new ObservableCollectionEx <IObjectEditor> (); Editors = observableEditors; observableEditors.CollectionChanged += OnEditorsChanged; observableEditors.AddItems(editors); // Purposefully after the event hookup }
/// <summary> /// Initializes a new instance of the <see cref="ExchangeComboBox"/>. /// </summary> public ExchangeComboBox() { IsEditable = true; var itemsSource = new ObservableCollectionEx <Exchange> { _emptyExchange }; _exchanges = new ThreadSafeObservableCollection <Exchange>(itemsSource); //_exchanges.AddRange(Exchange.EnumerateExchanges().OrderBy(b => b.Name)); DisplayMemberPath = "Name"; Exchanges = _exchanges; ItemsSource = Exchanges; SelectedExchange = _emptyExchange; }
private void caricaElencoDischiRimovibili() { DriveInfo[] dischi; if (IsInDesignMode) { dischi = creaDischiFinti(); } else { dischi = LumenApplication.Instance.getServizioAvviato <IVolumeCambiatoSrv>().GetDrivesUsbAttivi(); } dischiRimovibili = new ObservableCollectionEx <DriveInfo>(dischi); if (dischi.Length > 0) { ejectUsbItem = dischi[dischi.Length - 1]; } OnPropertyChanged("dischiRimovibili"); }
/// <summary> /// Создать <see cref="SecurityGrid"/>. /// </summary> public SecurityGrid() { InitializeComponent(); var itemsSource = new ObservableCollectionEx <SecurityItem>(); //var itemsSource = new ObservableCollection<SecurityItem>(); //itemsSource.CollectionChanged += (sender, args) => //{ // var newCount = args.NewItems == null ? 0 : args.NewItems.Count; // var oldCount = args.OldItems == null ? 0 : args.OldItems.Count; // Console.WriteLine("{0:X4} ColChange={1} NewCnt={2} OldCnt={3} NewIdx={4} OldIdx={5}", // GetHashCode(), args.Action, newCount, oldCount, // args.NewStartingIndex, args.OldStartingIndex); //}; //((INotifyPropertyChanged)itemsSource).PropertyChanged += (sender, args) => //{ // Console.WriteLine("{0:X4} PropChange {1}", GetHashCode(), args.PropertyName); //}; ItemsSource = itemsSource; _securities = new ConvertibleObservableCollection <Security, SecurityItem>(new ThreadSafeObservableCollection <SecurityItem>(itemsSource), CreateItem); _selectedSecurities = new SelectedSecurityList(this); MarketDataProvider = ConfigManager.TryGetService <IMarketDataProvider>(); if (MarketDataProvider == null) { ConfigManager.ServiceRegistered += (t, s) => { if (MarketDataProvider != null || typeof(IMarketDataProvider) != t) { return; } MarketDataProvider = (IMarketDataProvider)s; itemsSource.ForEach(item => UpdateData(item.Security, item)); }; } }
static void Main(string[] args) { Stopwatch stopWatch = new Stopwatch(); stopWatch.Start(); #region 要运行的程序 //MagnesiumRunTests.RunTests(); //MagnesiumRunTests.DbTests(); var a = new List <int>() { 1, 2, 3, 4, 5, 6 }; var b = ObservableCollectionEx.CreateAndSyncWith(a); b.Add(7); b.Add(8); a.ForEach(i => Console.Write(i + ",")); Console.WriteLine(); b.RemoveAt(0); b.RemoveAt(5); a.ForEach(i => Console.Write(i + ",")); #endregion stopWatch.Stop(); Console.WriteLine("\n\nProgram run finish!"); Console.WriteLine($"Run time {stopWatch.ElapsedMilliseconds} ms."); Console.ReadKey(); //var ma = Magnesium.Instance; //foreach (var item in ma.HandleProvider.LoadDcp(@"C:\Users\kuref\OneDrive\Codes\Visual Studio\Projects\Magnesium\Magnesium.Sample\bin\Debug\Magnesium.Sample.dll")) //{ // ma.HandleProvider.RegisterDcp(item); //} //ma.HandleProvider.GetDcps().ElementAt(0).RequestGenerator.AutoRun(); //Thread.Sleep(-1); }
private void ReplaceDummyChildren() { if (_children == DummyChildren) { var children = new List <ShellItem>(); try { foreach (PIDLIST childPidl in _shellFolder.EnumObjects(_tree.WindowHandle, SHCONTF.FOLDERS | SHCONTF.NONFOLDERS)) { NativeShellFolder childShellFolder = _shellFolder.BindToObject <IShellFolder>(childPidl).ToNative(); ShellItem childItem = new ShellItem(_tree, this, childPidl, childShellFolder); children.Add(childItem); } } catch (Exception e) { if (e.IsAnyType <FileNotFoundException, Win32Exception>()) { Log.Error("Failed to enumerate items of folder '{0}'.".Fmt(DisplayName), e); } } finally { children.Sort(new ShellItemComparer(ParentShellFolder)); _children = new ObservableCollectionEx <ShellItem>(); _childrenFiles = new ObservableCollectionEx <ShellItem>(); _childrenFolders = new ObservableCollectionEx <ShellItem>(); foreach (ShellItem childItem in children) { _children.Add(childItem); if (childItem.IsFolder) { _childrenFolders.Add(childItem); } else { _childrenFiles.Add(childItem); } } } OnPropertyChanged("Children", "ChildrenUnexpanded", "ChildrenFiles", "ChildrenFilesUnexpanded", "ChildrenFolders", "ChildrenFoldersUnexpanded"); } }
public async Task When_Collection_Reset() { var count = 0; var panel = new StackPanel(); var SUT = new ItemsControl() { ItemsPanelRoot = panel, ItemContainerStyle = BuildBasicContainerStyle(), InternalItemsPanelRoot = panel, ItemTemplate = new DataTemplate(() => { count++; return(new Border()); }) }; SUT.ApplyTemplate(); var c = new ObservableCollectionEx <string>(); c.Add("One"); c.Add("Two"); c.Add("Three"); SUT.ItemsSource = c; Assert.AreEqual(count, 3); Assert.AreEqual(SUT.Items.Count, 3); using (c.BatchUpdate()) { c.Add("Four"); c.Add("Five"); } Assert.AreEqual(SUT.Items.Count, 5); Assert.AreEqual(count, 5); Assert.IsNotNull(SUT.ContainerFromItem("One")); Assert.IsNotNull(SUT.ContainerFromItem("Four")); Assert.IsNotNull(SUT.ContainerFromItem("Five")); }
public void RemoveSubitemsTest() { var element1 = new SelectableElementStub(); var element2 = new SelectableElementStub(); var element3 = new SelectableElementStub(); element1.Subitems.Add(element2); element2.Subitems.Add(element3); var selectionManager = new SelectionManager(); var collection = new ObservableCollectionEx <SelectableElementStub> { element1, }; selectionManager.AddCollection(collection); element3.Selected = true; element1.Subitems.Remove(element2); Assert.AreEqual(element1, selectionManager.SelectedElement); }
public void ClearTest() { var wasExecuted = false; var collection = new ObservableCollectionEx <string> { "One", "Two" }; collection.CollectionChanged += (sender, args) => { if (args.Action == NotifyCollectionChangedAction.Remove && args.OldItems.Count == 2) { wasExecuted = true; } }; collection.Clear(); CollectionAssert.IsEmpty(collection); Assert.IsTrue(wasExecuted); }
public void ClearAndAddRangeClearsTheCollectionThenAddsAllTheItems() { var oc = new ObservableCollectionEx <string> { "Existing", "Items" }; var toAdd = new List <string> { "Foo", "Bar" }; oc.ClearAndAddRange(toAdd); oc.Should().ContainInOrder(toAdd); oc.Should().OnlyContain(s => toAdd.Contains(s)); oc.Count.Should().Be(2); }
public void PropertiesListItemRemovedJointList() { var baseObj = new object(); var derivedObj = new object(); var baseProperty = new Mock <IPropertyInfo> (); baseProperty.SetupGet(pi => pi.Type).Returns(typeof(string)); var baseProperties = new ObservableCollectionEx <IPropertyInfo> { baseProperty.Object }; var derivedProperties = new ObservableCollectionEx <IPropertyInfo> { baseProperty.Object }; var baseEditorMock = new Mock <IObjectEditor> (); baseEditorMock.SetupGet(e => e.Properties).Returns(baseProperties); baseEditorMock.SetupGet(e => e.Target).Returns(baseObj); var derivedEditorMock = new Mock <IObjectEditor> (); derivedEditorMock.SetupGet(e => e.Properties).Returns(derivedProperties); derivedEditorMock.SetupGet(e => e.Target).Returns(derivedObj); var providerMock = new Mock <IEditorProvider> (); providerMock.Setup(ep => ep.GetObjectEditorAsync(baseObj)).ReturnsAsync(baseEditorMock.Object); providerMock.Setup(ep => ep.GetObjectEditorAsync(derivedObj)).ReturnsAsync(derivedEditorMock.Object); var vm = new PanelViewModel(providerMock.Object, TargetPlatform.Default); vm.SelectedObjects.AddItems(new[] { baseObj, derivedObj }); Assume.That(vm.Properties.Count, Is.EqualTo(1)); Assume.That(vm.Properties.Cast <PropertyViewModel>().Select(v => v.Property), Contains.Item(baseProperty.Object)); derivedProperties.Remove(baseProperty.Object); Assert.That(vm.Properties, Is.Empty); }
public void Init(VM_AniDB_Anime anime, string defaultGroupName) { VM_AnimeSearch srch = new VM_AnimeSearch(); srch.AnimeID = anime.AnimeID; srch.MainTitle = anime.MainTitle; srch.Titles = new HashSet <string>(anime.GetAllTitles(), StringComparer.InvariantCultureIgnoreCase); SetSelectedAnime(srch); EvaluateRadioButtons(); rbGroupExisting.IsChecked = true; AllGroups = new ObservableCollection <VM_AnimeGroup_User>(); SearchResults = new ObservableCollectionEx <VM_AnimeSearch>(); try { ViewGroups = CollectionViewSource.GetDefaultView(AllGroups); ViewGroups.SortDescriptions.Add(new SortDescription("SortName", ListSortDirection.Ascending)); ViewSearchResults = CollectionViewSource.GetDefaultView(SearchResults); ViewSearchResults.SortDescriptions.Add(new SortDescription("MainTitle", ListSortDirection.Ascending)); List <VM_AnimeGroup_User> grpsRaw = VM_ShokoServer.Instance.ShokoServices.GetAllGroups(VM_ShokoServer.Instance.CurrentUser.JMMUserID).CastList <VM_AnimeGroup_User>(); foreach (VM_AnimeGroup_User grp in grpsRaw) { AllGroups.Add(grp); } ViewGroups.Filter = GroupSearchFilter; txtGroupName.Text = defaultGroupName; txtGroupSortName.Text = defaultGroupName; } catch (Exception ex) { Utils.ShowErrorMessage(ex); } }
private void SetProfile(bool startup = false) { if (!startup) { PropertyChanged -= ViewModelChanged; Model.PropertyChanged -= ModelChanged; ((INotifyPropertyChanged)Commands).PropertyChanged -= CommandModelChanged; Commands.MemberPropertyChanged -= CommandModelChanged; } var settings = ConfigurationManager.AppSettings[SelectedProfile.Name]; var settingsArray = settings.Split(new string[] { "~~~" }, StringSplitOptions.None); Model = TeamNotifierLogic.Deserialize <TeamNotifierModel>(settingsArray[0]); Commands = new ObservableCollectionEx <CommandViewModel>(); for (var i = 1; i < settingsArray.Length; i++) { var cmd = TeamNotifierLogic.Deserialize <CommandModel>(settingsArray[i]); var cmdvm = new CommandViewModel(cmd); cmdvm.DeleteCommand = new DelegateCommand(DeleteCommandHandler); Commands.Add(cmdvm); } if (string.IsNullOrEmpty(Model.User)) { Model.User = Environment.UserName; } ((INotifyPropertyChanged)Commands).PropertyChanged += CommandModelChanged; Commands.MemberPropertyChanged += CommandModelChanged; PropertyChanged += ViewModelChanged; Model.PropertyChanged += ModelChanged; if (!startup) { RaisePropertyChanged("Commands"); Model.RaisePropertyChanged("Model"); } }
public void ObservableCollectionEx_TestInsertRange() { ObservableCollectionEx <int> collection = new ObservableCollectionEx <int>(); List <int> list = new List <int>(); for (var i = 200001; i <= 300000; i++) { list.Add(i); } collection.AddRange(list); Assert.AreEqual(100000, collection.Count); Assert.AreEqual(300000, collection[collection.Count - 1]); list = new List <int>(); for (var i = 1; i <= 100000; i++) { list.Add(i); } collection.InsertRange(list); Assert.AreEqual(200000, collection.Count); Assert.AreEqual(1, collection[0]); Assert.AreEqual(100000, collection[99999]); Assert.AreEqual(300000, collection[collection.Count - 1]); list = new List <int>(); for (var i = 100001; i <= 200000; i++) { list.Add(i); } collection.InsertRange(100000, list); Assert.AreEqual(300000, collection.Count); Assert.AreEqual(1, collection[0]); Assert.AreEqual(100000, collection[99999]); Assert.AreEqual(100001, collection[100000]); Assert.AreEqual(200000, collection[199999]); Assert.AreEqual(200001, collection[200000]); Assert.AreEqual(300000, collection[collection.Count - 1]); }
public ListViewModel() { DataCollection = new ObservableCollectionEx <CmdArgItem>(); DataCollectionView = CollectionViewSource.GetDefaultView(DataCollection); if (DesignerProperties.GetIsInDesignMode(new System.Windows.DependencyObject())) { DataCollection.Add(new CmdArgItem() { Enabled = true, Command = @"C:\Users\Markus\Desktop\" }); DataCollection.Add(new CmdArgItem() { Enabled = false, Command = "Hello World" }); DataCollection.Add(new CmdArgItem() { Enabled = true, Command = "A very long commandline to test very long commandlines to see how very long commandlines work in our UI." }); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { try { DB.InitializeConnection(); } catch (Exception ex) { MessageBox.Show("Errore durante la connessione al Database: " + Environment.NewLine + ex.Message, "Errore", MessageBoxButton.OK, MessageBoxImage.Error); return; } RefreshWarehouse(); ShoppingItems = new ObservableCollectionEx <WarehouseItem>(); DataGridShopping.ItemsSource = ShoppingItems; _timer = new DispatcherTimer { Interval = new TimeSpan(0, 0, 0, 1, 0) }; _timer.Tick += TimerOnTick; DataContext = this; }
public void RemoveCollectionTest() { var element1 = new SelectableElementStub(); var element2 = new SelectableElementStub(); var selectionManager = new SelectionManager(); var collection = new ObservableCollectionEx <SelectableElementStub> { element1, element2 }; selectionManager.AddCollection(collection); element1.Selected = true; selectionManager.RemoveCollection(collection); element2.Selected = true; Assert.IsNull(selectionManager.SelectedElement); Assert.IsTrue(element1.Selected); Assert.IsTrue(element2.Selected); }
static IConnectionManager CreateConnectionManager(params string[] addresses) { var result = Substitute.For <IConnectionManager>(); var connections = new ObservableCollectionEx <IConnection>(); result.Connections.Returns(connections); result.GetLoadedConnections().Returns(connections); result.GetConnection(null).ReturnsForAnyArgs(default(IConnection)); foreach (var address in addresses) { var connection = Substitute.For <IConnection>(); var hostAddress = HostAddress.Create(address); connection.HostAddress.Returns(hostAddress); connection.IsLoggedIn.Returns(true); connections.Add(connection); result.GetConnection(hostAddress).Returns(connection); } return(result); }
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture) { bool isvalid = true; if (values[0] == null || values[1] == null) { return(null); } string paramvalue = values[0].ToString(); if (string.IsNullOrEmpty(paramvalue)) { return(null); } if (values[1] != DependencyProperty.UnsetValue) { ObservableCollectionEx <Parameter> siblings = (ObservableCollectionEx <Parameter>)values[1]; string value = Command.Normalize(paramvalue, siblings); if (Regex.IsMatch(value, @"{%(.+?)%}")) { isvalid = false; } else { isvalid = true; } } if (!isvalid) { return(Brushes.Yellow); } else { return(SystemColors.WindowBrush); } }
private void Window_Loaded(object sender, RoutedEventArgs e) { descriptionViewSource = ((CollectionViewSource)(this.FindResource("descriptionViewSource"))); descriptionCollection = new ObservableCollectionEx <description>(Entities.description); descriptionViewSource.Source = descriptionCollection; descriptionCollection.CollectionChanged += descriptionCollection_CollectionChanged; //groupsViewSource = ((CollectionViewSource)(this.FindResource("groupsViewSource"))); //groupsViewSource.Source = Entities.groups; // Формируем запрос для вывода его в queryResultsDataGrid queryResults = from Desc in Entities.description join Group in Entities.groups on Desc.id_desc equals Group.desc into CompGroups from CompGroup in CompGroups.DefaultIfEmpty() select new { desc_name = Desc.name, Desc.start_date, Desc.end_date, group_name = CompGroup.name, CompGroup.start_year, CompGroup.end_year }; queryResultsCollection.AddRange(queryResults); queryResultsViewSource = new CollectionViewSource(); (queryResultsViewSource as ISupportInitialize).BeginInit(); queryResultsViewSource.CollectionViewType = typeof(ListCollectionView); queryResultsViewSource.Source = queryResultsCollection; (queryResultsViewSource as ISupportInitialize).EndInit(); Binding myBinding = new Binding() { Source = queryResultsViewSource }; BindingOperations.SetBinding(queryResultsDataGrid, DataGrid.ItemsSourceProperty, myBinding); }
public BaseViewModel() { _debugName = NameManager.Instance.GetViewModelName <T>(); LoadReferenceData(); Entities = new ObservableCollectionEx <T>(); Entities.CollectionChanged += Entities_CollectionChanged; HeaderFilters = new List <HeaderFilterBaseModel>(); PagerViewModel = new PagerViewModel() { IsEnablePaging = true, CurrentPageIndex = 1, ItemCount = 0, PageCount = 0 }; PagerViewModel.ActionCurrentPageIndexChanged = Load; PagerViewModel.ActionIsEnablePagingChanged = Load; SelectedValuePath = nameof(DTO.IDto.ID); }
public ClassEditorViewModel( IEventAggregator eventAggregator, IObservableDataFactory observableDataFactory, IModuleDataService moduleDataService) { _eventAggregator = eventAggregator; _observableDataFactory = observableDataFactory; _moduleDataService = moduleDataService; NewCommand = new DelegateCommand(New); DeleteCommand = new DelegateCommand(Delete); Classes = new ObservableCollectionEx <ClassDataObservable>(); ConfirmDeleteRequest = new InteractionRequest <IConfirmation>(); Classes.ItemPropertyChanged += ClassesOnItemPropertyChanged; _eventAggregator.GetEvent <ModuleLoadedEvent>().Subscribe(ModuleLoaded); _eventAggregator.GetEvent <DataEditorClosedEvent>().Subscribe(DataEditorClosed); _eventAggregator.GetEvent <ModuleClosedEvent>().Subscribe(ModuleClosed); }
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) { ObservableCollectionEx <OctopusLib.Machine> machines = value as ObservableCollectionEx <OctopusLib.Machine>; StringBuilder sbMachine = new StringBuilder(); if (machines != null) { foreach (OctopusLib.Machine machine in machines) { if (sbMachine.Length == 0) { sbMachine.AppendFormat("{0}", machine.Name); } else { sbMachine.AppendFormat(",{0}", machine.Name); } } } return(sbMachine.ToString()); }
/// <summary> /// Constructor for CartViewModel. /// </summary> public CartViewModel() { // In design mode, simply return. if (DesignerProperties.IsInDesignTool) { return; } CartItems = new ObservableCollectionEx <CartItem>(); CartItems.CollectionChanged += CartItems_CollectionChanged; ((INotifyPropertyChanged)CartItems).PropertyChanged += CartItems_PropertyChanged; _removeCommand = new RelayCommand(OnRemove); _removeCommand.IsEnabled = true; LoadCartFromIsolatedStorage(); if (CartItems.Count > 0) { CurrentItem = CartItems[0]; } }
public void UpdateToMatchAddsNewItems() { var oc = new ObservableCollectionEx <string> { "Existing", "Items" }; var toAdd = new List <string> { "Existing", "Items", "Foo", "Bar" }; oc.UpdateToMatch(toAdd, s => s); oc.Should().ContainInOrder(toAdd); oc.Should().OnlyContain(s => toAdd.Contains(s)); oc.Count.Should().Be(4); }
/// <summary> /// Initializes a new instance of the <see cref="OrderGrid"/>. /// </summary> public OrderGrid() { InitializeComponent(); var itemsSource = new ObservableCollectionEx <OrderItem>(); ItemsSource = itemsSource; _orders = new ConvertibleObservableCollection <Order, OrderItem>(new ThreadSafeObservableCollection <OrderItem>(itemsSource), order => new OrderItem { Order = order, Condition = FormatCondition(order.Condition), }) { MaxCount = 100000 }; ContextMenu.Items.Add(new Separator()); ContextMenu.Items.Add(new MenuItem { Header = LocalizedStrings.Str1566, Command = RegisterOrderCommand, CommandTarget = this }); }
public void AuthFlowWithout2FA() { var provider = Substitutes.GetFullyMockedServiceProvider(); var factory = SetupFactory(provider); var cm = provider.GetConnectionManager(); var cons = new ObservableCollectionEx <IConnection>(); cm.Connections.Returns(cons); cm.GetLoadedConnections().Returns(cons); using (var uiController = new UIController((IGitHubServiceProvider)provider, factory, cm)) { var count = 0; var flow = uiController.Configure(UIControllerFlow.Clone); flow.Subscribe(data => { var uc = data.View; switch (++count) { case 1: Assert.IsAssignableFrom <IViewFor <ILoginControlViewModel> >(uc); // login cons.Add(SetupConnection(provider)); TriggerDone(data.View.ViewModel); break; case 2: Assert.IsAssignableFrom <IViewFor <IRepositoryCloneViewModel> >(uc); TriggerCancel(data.View.ViewModel); break; } }); uiController.Start(); Assert.Equal(2, count); Assert.True(uiController.IsStopped); } }
public ModulePropertiesViewModel( IObjectMapper objectMapper, IEventAggregator eventAggregator, IModuleService domainService, IObservableDataFactory observableDataFactory) { _objectMapper = objectMapper; _eventAggregator = eventAggregator; _domainService = domainService; _observableDataFactory = observableDataFactory; Scripts = new ObservableCollectionEx <ScriptDataObservable>(); LocalVariables = _observableDataFactory.Create <LocalVariableDataObservable>(); LevelChart = new ObservableCollectionEx <ClassLevelDataObservable>(); LocalVariables.VariablesItemPropertyChanged += OnPropertyChanged; LocalVariables.VariablesPropertyChanged += OnPropertyChanged; LocalVariables.VariablesCollectionChanged += LocalVariablesCollectionChanged; LevelChart.PropertyChanged += OnPropertyChanged; LevelChart.ItemPropertyChanged += OnPropertyChanged; MaximumPossibleLevel = 99; SaveCommand = new DelegateCommand(Save, CanSave); CancelCommand = new DelegateCommand(Cancel); AddLocalStringCommand = new DelegateCommand(AddLocalString); AddLocalDoubleCommand = new DelegateCommand(AddLocalDouble); DeleteLocalStringCommand = new DelegateCommand <LocalStringDataObservable>(DeleteLocalString); DeleteLocalDoubleCommand = new DelegateCommand <LocalDoubleDataObservable>(DeleteLocalDouble); _eventAggregator.GetEvent <ModuleLoadedEvent>().Subscribe(ModuleLoaded); _eventAggregator.GetEvent <ModulePropertiesClosedEvent>().Subscribe(Cancel); PropertyChanged += OnPropertyChanged; LocalVariables.PropertyChanged += OnPropertyChanged; }
public MainViewModel() { _settingsRepository = SimpleIoc.Default.GetInstance <IGenericSettingsRepository <AppPreferences> >(); _lockObj = new object(); _wcfCrmClient = SimpleIoc.Default.GetInstance <WcfCrmClient>(); _wcfCrmClient.CrmServerCallHistoryEntryAdded += WcfCrmClientOnCrmServerCallHistoryEntryAdded; _wcfCrmClient.CrmServerCallReceived += WcfCrmClientOnCrmServerCallReceived; _wcfCrmClient.CrmServerEntryAdded += WcfCrmClientOnCrmServerEntryAdded; _wcfCrmClient.CrmServerEntryDeleted += WcfCrmClientOnCrmServerEntryDeleted; _wcfCrmClient.CrmServerEntryModified += WcfCrmClientOnCrmServerEntryModified; _internalCrmEntries = new ObservableCollectionEx <CrmEntry>(); CrmEntries = CollectionViewSource.GetDefaultView(_internalCrmEntries); NewCrmEntryNote = new CrmNote(); InitMessenger(); InitSettings(); InitViewCommands(); _wcfCrmClient.Connect(); RebuildCrmEntries(); }