问题列表 - 第19846页

使用MVVM在WPF中创建新窗口的最佳方法

在邻居帖子中:ViewModel应如何关闭表单? 我发布了如何使用MVVM关闭Windows的愿景.现在我有一个问题:如何打开它们.

我有一个主窗口(主视图).如果用户单击"显示"按钮,则应显示"演示"窗口(模态对话框).使用MVVM模式创建和打开窗口的首选方法是什么?我看到两种一般方法:

第一个(可能是最简单的).事件处理程序"ShowButton_Click"应该在主窗口的代码中实现,方式如下:

        private void ModifyButton_Click(object sender, RoutedEventArgs e)
        {
            ShowWindow wnd = new ShowWindow(anyKindOfData);
            bool? res = wnd.ShowDialog();
            if (res != null && res.Value)
            {
                //  ... store changes if neecssary
            }
        }
Run Code Online (Sandbox Code Playgroud)
  1. 如果我们"显示"按钮状态应该被更改(启用/禁用),我们将需要添加将管理按钮状态的逻辑;
  2. 源代码非常类似于"旧式"WinForms和MFC源 - 我不确定这是好还是坏,请指教.
  3. 还有其他我错过的东西?

另一种方法:

在MainWindowViewModel中,我们将实现"ShowCommand"属性,该属性将返回命令的ICommand接口.Comman反过来:

  • 将举起"ShowDialogEvent";
  • 将管理按钮状态.

这种方法将更适合MVVM,但需要额外的编码:ViewModel类不能"显示对话框",因此MainWindowViewModel只会引发"ShowDialogEvent",MainWindowView我们需要在其MainWindow_Loaded方法中添加事件处理程序,这样的事情:

((MainWindowViewModel)DataContext).ShowDialogEvent += ShowDialog;
Run Code Online (Sandbox Code Playgroud)

(ShowDialog - 类似于'ModifyButton_Click'方法.)

所以我的问题是:1.你看到其他任何方法吗?你认为其中一个是好还是坏?(为什么?)

欢迎任何其他想法.

谢谢.

.net c# wpf mvvm

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

如何使用has_and_belongs_to_many将新模型与现有模型相关联

我有两个模型,有很多关系使用has_and_belongs_to_many.像这样:

class Competition < ActiveRecord::Base
  has_and_belongs_to_many :teams
  accepts_nested_attributes_for :teams
end

class Team < ActiveRecord::Base
  has_and_belongs_to_many :competitions
  accepts_nested_attributes_for :competitions
end
Run Code Online (Sandbox Code Playgroud)

如果我们假设我已经在数据库中创建了几个比赛,那么当我创建一个新的团队时,我想使用嵌套表单将新团队与任何相关的比赛相关联.

在这一点上,我确实需要帮助(已经坚持了好几个小时!)我认为我现有的代码已经以错误的方式解决了这个问题,但我会在以下情况下展示:

class TeamsController < ApplicationController
  def new
    @team = Team.new
    @competitions.all
    @competitions.size.times {@team.competitions.build}
  end
  def create
    @team = Team.new params[:team]
    if @team.save
      # .. usual if logic on save
    end
  end
end
Run Code Online (Sandbox Code Playgroud)

并且观点......这是我真正陷入困境的地方所以我不会同时发布我的努力.我想要的是每个比赛的复选框列表,以便用户可以选择适当的比赛,并且不选择那些比赛.

我真的坚持这个,所以欣赏任何指向正确的方向,你可以提供:)

ruby many-to-many model ruby-on-rails associations

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

iOS:如何找到文件的创建日期?

我正在尝试查找文件的创建日期(不是修改日期).

虽然修改日期是,但创建日期似乎不在文件的属性中.

我正在使用此代码..

NSFileManager* fm = [NSFileManager defaultManager];

NSString* path = [PathHelpers pathInDocumentsFolderWithFilename:FILE_NAME];
NSDictionary* attrs = [fm attributesOfItemAtPath:path error:nil];

if (attrs != nil) {
    return (NSDate*)[attrs objectForKey: NSFileCreationDate];
} else {
    return nil;
}
Run Code Online (Sandbox Code Playgroud)

这总是返回零.在调试器中键入"po attrs"以获取NSDictionary中的键/值对列表将返回以下内容.

NSFileGroupOwnerAccountID = 20;
NSFileGroupOwnerAccountName = staff;
NSFileModificationDate = 2010-01-21 11:47:55 +0000;
NSFileOwnerAccountID = 501;
NSFileOwnerAccountName = ben;
NSFilePosixPermissions = 420;
NSFileReferenceCount = 1;
NSFileSize = 338;
NSFileSystemFileNumber = 2234;
NSFileSystemNumber = 42553324;
NSFileType = NSFileTypeRegular;

没有创作日期..呸..

任何人都知道另一种获取创建日期的方式,还是只是在iOS中不存在?

date file nsfilemanager ios

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

C中异步编程的示例代码

我需要编程异步ODBC驱动程序,它需要以异步方式处理用户请求的ODBC API.我迫切希望知道如何在所有平台上编写可移植的异步程序.你能否为我提供一个关于如何正确的异步代码的基本C代码?

提前致谢.

asynchronous

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

将javascript注入javascript函数

我有一个奇怪的问题,我需要将一些javascript注入另一个javascript函数.我正在使用一个锁定的框架,所以我无法更改现有的功能.

我得到的是这样的

function doSomething(){...}

...***

我可以操纵***(上面)但是我不能改变doSomething函数...相反,我需要以某种方式在doSomething代码的末尾注入几行代码.

我需要这样做的原因是自定义框架调用doSomething(),这导致从我需要提取的服务器返回一个ID.这个ID只在doSomething函数中引用,所以我无法捕获它,除非我向该函数注入代码(除非我遗漏了一些东西).

有没有办法做到这一点?

javascript function code-injection

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

在JBoss AS 5中放置共享库的位置?

我是Jboss的新手,但我有多个web应用程序,每个都使用spring-hibernate和其他开源库和portlet,所以基本上现在每个war文件都包含那些jar文件.如何将这些罐子移动到一个公共位置,这样我就不必将它们放在每个war文件中?我想位置是server/default/lib,但我不确定.

此外,它是如何的不同有那些罐子WEB-INF/lib 主场迎战JBOSS/server/default/lib?我会遇到任何类加载器问题吗?

我还有静态数据存储在静态字段中Singleton,这些数据是否会在所有WAR文件中共享?

java jboss jboss-portal jboss5.x

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

表中有更多属性会降低性能吗?

到目前为止,我很适合使用C#windows应用程序.我即将转移到Asp.net开发一个网站.这个要求使我在一个表中放置了大约50列.我知道使用普通形式将其分成小表的概念.

我尝试使用谷歌搜索,但dint得到了很多结果.我需要知道具有50个属性的表是否会降低我的Web应用程序的性能?有人可以建议我这个.

c# sql asp.net

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

如何确定触发哪些JavaScript事件

正如标题所说,当我与网页交互时,如何找到触发的JavaScript事件?

javascript debugging jquery events

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

我不能在事务范围内调用Entity Framework中的存储过程吗?

我有一个方法,使用实体框架在不同的实体中进行一些更改/插入,所有这些都在一个事务范围内.这些变化非常有效.

当我需要在这些操作中使用存储过程时,我的问题就开始了.该过程仅在一个表中进行插入,并且没有明确的事务声明.我已经尝试过声明一个事务并在那里提交,但问题是一样的.

我不能在事务范围内调用实体框架(EF1)中的存储过程吗?

当使用块关闭时,仅在transaction.Complete()之后抛出此异常.

The transaction has aborted.

   at System.Transactions.TransactionStatePromotedAborted.PromotedTransactionOutcome(InternalTransaction tx)
   at System.Transactions.TransactionStatePromotedEnded.EndCommit(InternalTransaction tx)
   at System.Transactions.CommittableTransaction.Commit()
   at System.Transactions.TransactionScope.InternalDispose()
   at System.Transactions.TransactionScope.Dispose()
Run Code Online (Sandbox Code Playgroud)

内部异常:

The transaction operation cannot be performed because there are pending requests working on this transaction.

   at System.Data.SqlClient.SqlConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.SqlInternalConnection.OnError(SqlException exception, Boolean breakConnection)
   at System.Data.SqlClient.TdsParser.ThrowExceptionAndWarning(TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.Run(RunBehavior runBehavior, SqlCommand cmdHandler, SqlDataReader dataStream, BulkCopySimpleResultSet bulkCopyHandler, TdsParserStateObject stateObj)
   at System.Data.SqlClient.TdsParser.TdsExecuteTransactionManagerRequest(Byte[] buffer, TransactionManagerRequestType request, String transactionName, TransactionManagerIsolationLevel isoLevel, Int32 timeout, SqlInternalTransaction transaction, TdsParserStateObject stateObj, Boolean isDelegateControlRequest)
   at System.Data.SqlClient.SqlInternalConnectionTds.ExecuteTransactionYukon(TransactionRequest transactionRequest, …
Run Code Online (Sandbox Code Playgroud)

stored-procedures entity-framework transactionscope

7
推荐指数
2
解决办法
6340
查看次数

如何查找具有相同名称但在Linux中同一目录中存在的不同情况下的重复文件?

如何返回名为duplicates的文件列表,即具有相同名称但存在于同一目录中的不同情况?

我不关心文件的内容.我只需要知道任何具有相同名称副本的文件的位置和名称.

示例重复:

/www/images/taxi.jpg
/www/images/Taxi.jpg
Run Code Online (Sandbox Code Playgroud)

理想情况下,我需要从基本目录中递归搜索所有文件.在上面的例子中它是/www/

linux filesystems bash command-line find

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