小编thr*_*rag的帖子

如何创建只读的ObservableCollection属性?

我想在包含对象列表(来自数据库)的视图模型上公开属性.

我需要这个集合是只读的.也就是说,我想阻止添加/删除等.但是允许foreach和indexers工作.我的目的是声明一个包含可编辑集合的私有字段,并使用只读公共属性引用它.如下

public ObservableCollection<foo> CollectionOfFoo { 
     get { 
         return _CollectionOfFoo;
     }
}
Run Code Online (Sandbox Code Playgroud)

但是,该语法只会阻止更改对集合的引用.它不会阻止添加/删除等

完成此任务的正确方法是什么?

.net c# wpf observablecollection

36
推荐指数
2
解决办法
2万
查看次数

RangeError:超出最大调用堆栈大小

我想这意味着有一个循环引用,但对于我的生活,我无法猜测如何解决它.

有人有主意吗?

http://plnkr.co/edit/aNcBcU?p=preview

检查Chrome中的调试控制台(例如),您将看到错误.违规行是

 scope.map = map;
Run Code Online (Sandbox Code Playgroud)

scope.map正在控制器上"监视"

$scope.$watch("options.map", function (map) { ... }, true);
Run Code Online (Sandbox Code Playgroud)

angularjs

20
推荐指数
3
解决办法
7万
查看次数

具有简单angularjs嵌套指令的隔离范围

请检查这个plnkr

我已经阅读过所有关于指令,范围和隔离范围的信息.但我仍然无法理解使这项工作的方式.

只要它没有嵌套在另一个指令中,我创建的指令就可以完美地工作.

嵌套时,'localFunc:"&func"'属性绑定到外部控制器范围就好了,但'localAttr:"= attr"'范围失败.

如果有人能帮我理解原因,我将永远感激不尽.

angularjs angularjs-directive angularjs-scope

16
推荐指数
1
解决办法
7847
查看次数

MVVM命令绑定

我正在尝试学习MVVM模式.我遇到的主要问题是学习我应该在哪里声明,创建和绑定命令对象.

2个例子:

  1. 我有一个主要形式,就像一个开关板或主菜单.显示选择按钮1和视图1,选择按钮2,显示视图2.大.现在我想回到主窗体,所以我需要一个名为"主菜单"的视图1(和视图2)上的按钮.我应该在哪里定义命令和命令处理程序,以便我可以绑定到"ShowMainMenu"命令?我可以在View2ViewModel中创建它们但是我没有权限显示主视图?或者,我可以在MainView模型中创建thim但是然后如何在子视图模型中绑定它们(我根据mvvm建议使用RelayCommand obejct并且它们不会冒泡到父模型.)

  2. 我在一个主窗口视图中可以看到两个用户控件,我们称之为MainView,UC1和UC2.每个都有ViewModel MainViewModel,UC1ViewModel,UC2View Model.我在UC1上有一个名为"AddItem"的按钮.它应该在UC2的列表中添加一个项目.设置"AddItemCommand"并绑定到它的当前方法是什么.Command应该在MainViewModel,Uc1ViewModel还是UC2ViewModel?我怎么会和它结合起来.

谢谢你的帮助.

c# wpf mvvm commandbinding

5
推荐指数
1
解决办法
4275
查看次数

绑定到ItemsControl中的CurrentItem

下面的XAML基本上是尝试创建一个Buttons 列表(从当前集合中Name对象的属性呈现).ViewsDataContext

当我单击按钮时,CurrentItem属性CollectionViewSource应该更改,关联View应该显示在内容呈现器中.

好.如果我点击ListBox下面的XAML,它可以完全按照要求工作.

但是,如果单击UniformGrid(由项目控件创建)中的按钮,CurrentItem则不会更新该属性.

如何CurrentItemItemsControl?中选择项目时更新?

谢谢

<UserControl x:Class="Pos.Features.Reservation.ReservationView"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:product="clr-namespace:Pos.Features.ProductBrowser"
             xmlns:activity="clr-namespace:Pos.Features.ActivityBrowser"
             xmlns:addbysku="clr-namespace:Pos.Features.AddBySku"
             xmlns:client="clr-namespace:Pos.Features.ClientBrowser"
             xmlns:notes="clr-namespace:Pos.Features.Notes"
             xmlns:controls="clr-namespace:Pos.Views"
             xmlns:res="clr-namespace:Pos.Core;assembly=Pos.Core"
             Height="300" Width="300">
    <UserControl.Resources>
        <DataTemplate DataType="{x:Type product:ProductBrowserViewModel}">
            <product:ProductBrowserView/>
        </DataTemplate>
        <DataTemplate DataType="{x:Type activity:ActivityBrowserViewModel}">
            <activity:ActivityBrowserView/>
        </DataTemplate>

        <CollectionViewSource x:Name="x" x:Key="ViewsCollection" Source="{Binding Views}"  />
    </UserControl.Resources>

    <StackPanel>
        <ListBox Name="ListBoxMenu" Grid.Column="0" Margin="5" ItemsSource="{Binding Source={StaticResource ViewsCollection}}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <TextBlock Text="{Binding Name}" Padding="10"/>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>
        <ContentControl Grid.Column="1" Content="{Binding …
Run Code Online (Sandbox Code Playgroud)

data-binding wpf itemscontrol collectionviewsource currentitem

3
推荐指数
1
解决办法
1万
查看次数

Gstreamer:如何使音频和视频以相同的速率播放

我的管道只是在尝试将audiotestsrc与videotestsrc混合并输出到文件接收器。

videotestsrc num-buffers=150  ! video/x-raw-yuv,width=1920, height=1080 ! 
   timeoverlay ! videorate ! queue ! xvidenc ! avimux name=mux mux.
      ! filesink sync=true location=new.avi  
audiotestsrc num-buffers=150 ! 
  queue ! audioconvert ! audiorate ! mux.
Run Code Online (Sandbox Code Playgroud)
  • 产生了new.avi。
  • 视频正好是预期的5秒长
  • 音频约为3.5秒长,剩余的1.5秒则
    很小。

我在这里想念什么?我尝试了sync =“”属性的每种组合,等等。

哪个管道会生成将自动测试模式和视频测试模式混合在一起的测试片段,其中音频和视频的持续时间相同?

谢谢

gstreamer

3
推荐指数
1
解决办法
3401
查看次数

如何从 Firestore 制作父/子对象流

我有一个具有层次关系的 firestore 数据库。“父”文档具有子对象的集合(“子”)。我想收到一系列家长反对意见。因此,如果 Fire 存储中的父级更改,则流应提供一个新的 Parent 对象,其中所有子级都已加载。

下面的代码是我想要实现的。问题出在标记为“====> 问题”的行中,该行插入到代码中。

编译器说:返回类型“列表>”不是匿名closure.dart(return_of_invalid_type_from_closure)定义的“列表”。

我不知道如何将此流转换为对异步调用的“映射”调用以获取列表而不是未来

有人知道 Flutter/Dart 中分层 Firestore 数据的好样本吗?

import 'package:cloud_firestore/cloud_firestore.dart';

final parentsCollection = Firestore.instance.collection('parents');

Stream<List<Parent>> jots() {
  return parentsCollection.snapshots().map((snapshot) {

 //====================================================
        return snapshot.documents //  <===== Problem
 //====================================================
        .map((doc) async { 
          var parentEntity = await ParentEntity.fromSnapshot(doc);
          return Parent.fromEntity(parentEntity);
        }).toList();
  });
}

class Parent {
  final String id;
  final String data;
  final List<Child> children ;

  Parent(this.data, {
    String id, 
    List<Child> children
  })
      : this.id = id ?? '',
        this.children = children ?? List<Child>()
    ; …
Run Code Online (Sandbox Code Playgroud)

stream dart flutter google-cloud-firestore

1
推荐指数
1
解决办法
1616
查看次数