当前位置: 首页>>代码示例>>C#>>正文


C# ObservableCollection.Single方法代码示例

本文整理汇总了C#中ObservableCollection.Single方法的典型用法代码示例。如果您正苦于以下问题:C# ObservableCollection.Single方法的具体用法?C# ObservableCollection.Single怎么用?C# ObservableCollection.Single使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在ObservableCollection的用法示例。


在下文中一共展示了ObservableCollection.Single方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。

示例1: ObservableFilteredCollection_LiveFilteringTest

        public void ObservableFilteredCollection_LiveFilteringTest()
        {
            var source = new ObservableCollection<TestObject>(Enumerable.Range(0, 10).Select(i => new TestObject(i)));
            var target = new ObservableFilteredCollection<TestObject>(source, s => (s.Value & 1) != 0, "Value");

            NotifyCollectionChangedEventArgs lastEventArgs = null;
            NotifyCollectionChangedEventHandler callback = (_, e) => lastEventArgs = e;

            target.CollectionChanged += callback;

            Assert.IsTrue(target.Select(t => t.Value).SequenceEqual(new[] { 1, 3, 5, 7, 9 }));

            source.RemoveRange(o => o.Value == 2);
            Assert.IsTrue(target.Select(t => t.Value).SequenceEqual(new[] { 1, 3, 5, 7, 9 }));
            Assert.IsNull(lastEventArgs);

            source.RemoveRange(o => o.Value == 3);
            Assert.IsTrue(target.Select(t => t.Value).SequenceEqual(new[] { 1, 5, 7, 9 }));
            Assert.AreEqual(NotifyCollectionChangedAction.Remove, lastEventArgs.Action);
            Assert.AreEqual(3, lastEventArgs.OldItems.Cast<TestObject>().Single().Value);
            lastEventArgs = null;

            source.Single(o => o.Value == 5).Value = 6;
            Assert.IsTrue(target.Select(t => t.Value).SequenceEqual(new[] { 1, 7, 9 }));
            Assert.AreEqual(NotifyCollectionChangedAction.Remove, lastEventArgs.Action);
            Assert.AreEqual(6, lastEventArgs.OldItems.Cast<TestObject>().Single().Value);
            lastEventArgs = null;

            source.First(o => o.Value == 6).Value = 5;
            Assert.IsTrue(target.Select(t => t.Value).SequenceEqual(new[] { 1, 7, 9, 5 }));
            Assert.AreEqual(NotifyCollectionChangedAction.Add, lastEventArgs.Action);
            Assert.AreEqual(5, lastEventArgs.NewItems.Cast<TestObject>().Single().Value);
            lastEventArgs = null;
        }
开发者ID:tom-englert,项目名称:TomsToolbox,代码行数:34,代码来源:ObservableFilteredCollectionTests.cs

示例2: ConfigurationViewModel

 public ConfigurationViewModel()
 {
     DisplayName = "CFG";
     InstalledFonts = new ObservableCollection<FontFamily>(Fonts.SystemFontFamilies.OrderBy(c => c.Source));
     var settings = ConfigurationSerializer.Load();
     SelectedFont = string.IsNullOrEmpty(settings.Font) ? InstalledFonts.First() : InstalledFonts.Single(c => c.Source == settings.Font);
 }
开发者ID:schultyy,项目名称:NewsStand,代码行数:7,代码来源:ConfigurationViewModel.cs

示例3: InvokeAsyncTest

 public async Task InvokeAsyncTest()
 {
     var ints = new ObservableCollection<int>();
     var dispatcherOperation = ints.InvokeAsync(() => ints.Add(3));
     Dispatcher.CurrentDispatcher.DoEvents();
     await dispatcherOperation;
     Assert.AreEqual(3, ints.Single());
 }
开发者ID:JohanLarsson,项目名称:So.Wpf,代码行数:8,代码来源:OcExtTests.cs

示例4: ShowArtistSearchResults

 internal static void ShowArtistSearchResults(IEnumerable<SynoItem> items)
 {
     var albumViewModels = new ObservableCollection<ArtistViewModel>(items.Select(o => new ArtistViewModel(o)));
     foreach (var viewModel in albumViewModels)
     {
         var getAlbumsTask = App.audioStationSession.GetAlbumsForArtistAsync(viewModel.Artist);
         // TODO : instead of writing the strategy here, we could call a delegate which would then be changeable : this would enable alternative search scenarios for limited bandwidth scenarios.
         getAlbumsTask.ContinueWith(task => albumViewModels.Single(o=>o.Artist == task.AsyncState).Albums = new ObservableCollection<AlbumViewModel>(task.Result.Select(o => new AlbumViewModel(o))));
     }
     var artistSearchViewModel = new ArtistSearchResultsViewModel(albumViewModels);
     var page = new ArtistSearchResults(artistSearchViewModel);
     Window.Current.Content = page;
 }
开发者ID:salfab,项目名称:Synotune,代码行数:13,代码来源:App.xaml.cs

示例5: IndexOf

 /// <summary>
 /// Find a tasklist by ID and then return its index 
 /// </summary>
 /// <param name="observableCollection"></param>
 /// <param name="taskList"></param>
 /// <returns></returns>
 private int IndexOf(ObservableCollection<TaskList> lists, TaskList taskList)
 {
     try
     {
         TaskList taskListRef = lists.Single(tl => tl.ID == taskList.ID);
         return lists.IndexOf(taskListRef);
     }
     catch (Exception)
     {
         return -1;
     }
 }
开发者ID:ogazitt,项目名称:TaskStore,代码行数:18,代码来源:TaskListPage.xaml.cs

示例6: CreateTags

        public void CreateTags(ObservableCollection<Tag> tagList)
        {
            var newTags = new ObservableCollection<Tag>();

            if (taskTags != null)
            {
                foreach (var taskTag in taskTags)
                {
                    var foundTag = tagList.Single<Tag>(t => t.ID == taskTag.TagID);
                    if (foundTag != null)
                    {
                        newTags.Add(foundTag);
                    }
                }
            }

            // store the tag collection (which will invoke setter and trigger databinding)
            Tags = newTags;
        }
开发者ID:ogazitt,项目名称:TaskStore,代码行数:19,代码来源:Task.cs

示例7: InitializeFolders

        private ObservableCollection<Folder> InitializeFolders()
        {
            // get the default folders and enqueue an operation to insert each one of them and their subitems
            var folders = new ObservableCollection<Folder>(UserConstants.DefaultFolders(null));
            foreach (var folder in folders)
            {
                string queueName = folder.Name.StartsWith("$") ? RequestQueue.SystemQueue : RequestQueue.UserQueue;
                FolderDictionary.Add(folder.ID, folder);
                RequestQueue.EnqueueRequestRecord(queueName,
                    new RequestQueue.RequestRecord() { ReqType = RequestQueue.RequestRecord.RequestType.Insert, Body = folder, ID = folder.ID, IsDefaultObject = true });

                foreach (var item in folder.Items)
                {
                    RequestQueue.EnqueueRequestRecord(queueName,
                        new RequestQueue.RequestRecord() { ReqType = RequestQueue.RequestRecord.RequestType.Insert, Body = item, ID = item.ID, IsDefaultObject = true });

                }
                StorageHelper.WriteFolder(folder);
            }

            // extract the $Client folder and handle it specially
            var cf = folders.Single(f => f.Name == SystemEntities.Client);
            folders.Remove(cf);
            ClientFolder = cf;
            // extract the $PhoneClient folder and handle it specially
            var pcf = folders.Single(f => f.Name == SystemEntities.PhoneClient);
            folders.Remove(pcf);
            PhoneClientFolder = pcf;

            // initialize the SelectedCount for a few default folders and lists
            /*
            foreach (var folder in folders)
            {
                if (folder.Name == UserEntities.People ||
                    folder.Name == UserEntities.Places)
                {
                    ListMetadataHelper.IncrementListSelectedCount(pcf, folder);
                    continue;
                }
                foreach (var item in folder.Items)
                {
                    if (item.Name == UserEntities.Tasks ||
                        item.Name == UserEntities.Groceries)
                    {
                        ListMetadataHelper.IncrementListSelectedCount(pcf, item);
                        continue;
                    }
                }
            }
            */

            return folders;
        }
开发者ID:ogazitt,项目名称:zaplify,代码行数:53,代码来源:MainViewModel.cs

示例8: CreateTags

        public void CreateTags(ObservableCollection<Tag> tagList)
        {
            var newTags = new ObservableCollection<Tag>();

            if (itemTags != null)
            {
                foreach (var itemTag in itemTags)
                {
                    try
                    {
                        var foundTag = tagList.Single<Tag>(t => t.ID == itemTag.TagID);
                        if (foundTag != null)
                        {
                            newTags.Add(foundTag);
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
            }

            // store the tag collection (which will invoke setter and trigger databinding)
            //Tags = newTags;
            // don't trigger databinding
            tags = newTags;
        }
开发者ID:ogazitt,项目名称:zaplify,代码行数:27,代码来源:Item.cs


注:本文中的ObservableCollection.Single方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。