问题列表 - 第42805页

多个视图模型之间的状态共享的具体示例(WPF MVVM)

我有一个包含许多对象的WPF/Entity Framework(4.0)项目.我想构建应用程序,以便我可以在视图模型中共享对象选择状态.

例如:我们有汽车,司机,乘客和货物类.我们还有CarList,DriverList等的UserControls以及CarEditor,DriverEditor等的编辑器窗口.此外,我们有所有这些的视图模型(CarListViewModel,Dri​​verListViewModel,CargoEditorViewModel等).这一切都构成了一个可停靠的界面,用户可以在其中打开多个对象列表,编辑器和查看器.

我想要的是如何连接多个视图模型的具体代码示例,以便在CarList中选择汽车将使该汽车在CarEditorView中生效,但也可以在上下文有效的任何其他视图中选择(例如如果有过滤谓词,则为DriverByCarView-或仅为DriverList.

基于这个问题,有许多建议和讨论.似乎占主导地位的两种方法是:

  • 3018307:通过提及消息传递子系统来讨论状态共享
  • 1159035:使用封闭的视图模型讨论状态共享

这些方法中的一种比另一种更好吗?

有没有人以书面或小代码项目的形式有这两种方法的具体例子?

我还在学习WPF,所以对于阅读API基础知识的入门点的建议表示赞赏,但查看代码示例是我经常去的地方.

谢谢


如果有人有兴趣,这里有一些其他类似的讨论:

  • 3816961:讨论根据对象类型返回多个视图模型(即遵循特定接口的任意类型的集合)
  • 1928130:讨论将视图模型聚合为其他视图模型的属性是否是个好主意(例如,由面板视图模型组成的MainWindow视图模型)
  • 1120061:基本讨论是否使用每模型视图模型策略或视图模型每视图元素策略.
  • 4244222:讨论在使用嵌套对象层次结构时是否嵌套视图模型.
  • 4429708:直接讨论视图模型之间的共享集合,但不详细说明.
  • 列表项:讨论在单个视图模型中管理多个选择.

c# data-binding wpf mvvm

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

设计可邀请:可选择发送电子邮件

在设计中,您可以通过执行以下方式邀请新用户:

User.invite!(:email => "new_user@example.com", :name => "John Doe")
Run Code Online (Sandbox Code Playgroud)

我想做的是(有时)阻止设计邀请发送电子邮件.我在库中找到了以下代码:

def invite!
        if new_record? || invited?
          self.skip_confirmation! if self.new_record? && self.respond_to?(:skip_confirmation!)
          generate_invitation_token if self.invitation_token.nil?
          self.invitation_sent_at = Time.now.utc
          save(:validate => false)
          ::Devise.mailer.invitation_instructions(self).deliver
        end
      end
Run Code Online (Sandbox Code Playgroud)

有关如何最好地更新以至于不在最后一行发送电子邮件的任何想法?我不熟悉::

谢谢

ruby-on-rails devise ruby-on-rails-3

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

为什么Seq [V]不扩展Map [Int,V],Set [V]也不扩展Map [V,Bool]?

的三个直接亚型IterableMap,SeqSet.看起来,除了性能问题,一个Seq是整数的地图值,并且Set是从值的地图,布尔值(true,如果值是设定,否则为false).

如果是这种情况,为什么不通过Seq[V]扩展Map[Int, V]Set[V]扩展在类型系统中表达Map[V, Boolean]

oop scala subclass

6
推荐指数
2
解决办法
295
查看次数

如何设置每件产品的运费

在magento配置我已设置运费为5英镑.有没有办法在产品级别设置运费价格.显然有我就是找不到哪里.

magento

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

如何修复错误$ .ui.dialog.defaults未定义

我的页面上有一个错误,它阻止其他一些javascript正常运行:

$.ui.dialog.defaults is undefined
      $.ui.dialog.defaults.bgiframe = true;
Run Code Online (Sandbox Code Playgroud)

错误

我可以采取哪些步骤来修复此错误?

我头脑中有这个

<script language="JavaScript" type="text/javascript" src="http://www.mysite.com/demo/system/ext/jquery/jquery.js"></script>
<script language="JavaScript" type="text/javascript" src="http://www.mysite.com/demo/system/ext/jquery/jquery-ui.js"></script>
Run Code Online (Sandbox Code Playgroud)

谢谢

jquery jquery-ui

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

在python中简单编辑二进制文件

这应该很容易! 但我一直无法找到这个问题的答案.

使用python,我想将二进制文件读入内存,修改文件的前四个字节,然后将文件写回.

必须有一种简单的方法来编辑四个小字节!对?

python io binary

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

eval()和新的Function()是一样的吗?

这两个功能在幕后做同样的事情吗?(在单一陈述函数中)

var evaluate = function(string) {
    return eval('(' + string + ')');
}

var func = function(string) {
    return (new Function( 'return (' + string + ')' )());
}

console.log(evaluate('2 + 1'));
console.log(func('2 + 1'));
Run Code Online (Sandbox Code Playgroud)

javascript optimization eval function

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

点之前有空格可以接受吗?

以下第二种缩进方法的一般意见是什么?

// Normal indentation
a.Value        = "foobar";
ab.Checked     = false;
foo.Value      = "foobar";
foobar.Checked = true;

// Spaces before the dot to align the properties/methods
a     .Value   = "foobar";
ab    .Checked = false;
foo   .Value   = "foobar";
foobar.Checked = true;
Run Code Online (Sandbox Code Playgroud)

这应该是一个维基,但我要么没有足够的权限,要么不知道如何更改它.

编辑

我已经决定添加另一个例子来更好地展示这种缩进样式可能有用的地方.

fooA   .PropertyA = true;
foobarB.PropertyA = true;
Run Code Online (Sandbox Code Playgroud)

使用VS2010中的新多线编辑功能,可以更轻松地更改所有线路上的PropertyA.

在C#中也有空格,甚至在点之前的换行并不罕见(参见LINQ).

c# syntax coding-style

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

用于解析无效HTML的Common Lisp包?

作为一个学习练习,我在Common Lisp中编写了一个Web scraper.(粗略)计划是:

  1. 使用Quicklisp管理依赖项
  2. 使用Drakma加载页面
  3. 使用xmls解析页面

我刚刚陷入困境:我正在抓取的网站并不总能产生有效的XHTML.这意味着步骤3(使用xmls解析页面)不起作用.而且我不喜欢使用正则表达式作为这个人 :-)

那么,任何人都可以推荐一个Common Lisp包来解析无效的XHTML吗?我想象的类似于HTML Agility Pack for .NET ...

common-lisp web-scraping quicklisp

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

C#:如何通过以某种方式从另一个线程发出信号来强制从主线程"调用"一个方法

对不起长标题,我甚至不知道如何表达问题的方式

我正在使用一个库,它从主线程(是一个C库)的不同上下文运行回调,我在C#中创建了回调,当我被调用时,我想只提出一个事件.

但是因为我不知道事件内部会是什么,我想找到一种方法来调用方法而不会出现锁等问题(否则第三方用户将不得不在事件中处理这个问题,非常难看)

有没有办法做到这一点?我可以完全走错路,但我正在考虑winforms处理不同线程的方式(.Invoke事物)

否则我可以发送消息到窗口的消息循环,但我不知道很多关于消息传递,如果我可以发送像这样的"自定义"消息

例:

private uint lgLcdOnConfigureCB(int connection, System.IntPtr pContext)
{
    OnConfigure(EventArgs.Empty);
    return 0U;
}
Run Code Online (Sandbox Code Playgroud)

这种回调从另外一个程序,我不拥有控制权叫,我想在主线程中运行OnConfigure方法(即处理我的WinForm的),怎么办呢?或者换句话说,我想运行OnConfigure而不需要考虑锁

编辑1:

我有这个例外的问题:

CallbackOnCollectedDelegate reived消息:在GarbageCollector中收集的委托'G19dotNet!G19dotNet.LgLcd + lgLcdOnSoftButtonsCB :: Invoke'上运行回调.在非托管代码期间,应确保代理永远不会被删除,直到您确定永远不会被调用

编辑2:

问题由我自己解决,感谢Stackoverflow总是帮助我!供将来参考:将委托定义为函数指针

c# multithreading signals callback winforms

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