public ThingViewerViewModel(ThingViewModel thingViewModel) { var uriParser = new ImageUriParser(); this.ThingViewModel = thingViewModel; this.Background = uriParser.TryParse(thingViewModel.Source.Background)?.Uri; this.Cover = uriParser.TryParse(thingViewModel.Source.Cover)?.Uri; this.GroupedFields = new ObservableCollection <GroupedList <string, FieldViewModel> >( this.ThingViewModel.Fields.GroupBy(z => z.Source.Name).Select(z => z.ToList())); this.existsFields.AddRange(this.ThingViewModel.Fields.Select(z => z.Source.TargetId)); this.BeginGetFieldsReverse(); this.Copyers.AddRange(App.Current.ModuleManager.Copyers); }
public IEnumerable <Inline> ParseLine(string[] line) { var rowCount = line.Length / this.columnCount + (line.Length % this.columnCount != 0 ? 1 : 0); var grid = new Grid(); grid.ColumnDefinitions.AddRange(Generater.Create <ColumnDefinition>(this.columnCount)); grid.RowDefinitions.AddRange(Generater.Create <RowDefinition>(rowCount)); var imageUriParser = new ImageUriParser(); var imageCreator = new ImagesCreator(); foreach (var item in line .Select(z => imageUriParser.TryParse(z)) .Where(z => z != null) .EnumerateIndexValuePair()) { var image = imageCreator.AddImage(item.Value); if (image == null) { continue; } var col = item.Index % this.columnCount; var row = item.Index / this.columnCount; Grid.SetColumn(image, col); Grid.SetRow(image, row); grid.Children.Add(image); } yield return(new InlineUIContainer(grid)); }
public async void BeginLoadThingName() { if (this.thingName != null) { return; } this.thingName = string.Empty; Debug.WriteLine($"load field for [{this.TargetId}]"); var thing = await App.Current.ThingSetAccessor.FindOneAsync(this.TargetId); if (thing != null) { this.Name = thing.MajorWord().Text; this.DisplayValue = $"{this.Source.Name} 「{thing.MajorWord().Text}」"; var uriParser = new ImageUriParser(); this.Icon = uriParser.TryParse(thing.Icon)?.Uri; this.Cover = uriParser.TryParse(thing.Cover)?.Uri; } }
public IEnumerable <Inline> ParseLine(string[] lines) { var uriParser = new ImageUriParser(); foreach (var line in lines) { var uri = uriParser.TryParse(line); if (uri == null) { continue; } var player = new MediaPlayerControl { IsAutoPlay = this.isAutoPlay, DisplayName = uri.Name ?? string.Empty }; player.SetSource(uri.Uri); yield return(new InlineUIContainer(player)); } }