在邻居帖子中: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)
另一种方法:
在MainWindowViewModel中,我们将实现"ShowCommand"属性,该属性将返回命令的ICommand接口.Comman反过来:
这种方法将更适合MVVM,但需要额外的编码:ViewModel类不能"显示对话框",因此MainWindowViewModel只会引发"ShowDialogEvent",MainWindowView我们需要在其MainWindow_Loaded方法中添加事件处理程序,这样的事情:
((MainWindowViewModel)DataContext).ShowDialogEvent += ShowDialog;
Run Code Online (Sandbox Code Playgroud)
(ShowDialog - 类似于'ModifyButton_Click'方法.)
所以我的问题是:1.你看到其他任何方法吗?你认为其中一个是好还是坏?(为什么?)
欢迎任何其他想法.
谢谢.
我有两个模型,有很多关系使用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)
并且观点......这是我真正陷入困境的地方所以我不会同时发布我的努力.我想要的是每个比赛的复选框列表,以便用户可以选择适当的比赛,并且不选择那些比赛.
我真的坚持这个,所以欣赏任何指向正确的方向,你可以提供:)
我正在尝试查找文件的创建日期(不是修改日期).
虽然修改日期是,但创建日期似乎不在文件的属性中.
我正在使用此代码..
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中不存在?
我需要编程异步ODBC驱动程序,它需要以异步方式处理用户请求的ODBC API.我迫切希望知道如何在所有平台上编写可移植的异步程序.你能否为我提供一个关于如何正确的异步代码的基本C代码?
提前致谢.
我有一个奇怪的问题,我需要将一些javascript注入另一个javascript函数.我正在使用一个锁定的框架,所以我无法更改现有的功能.
我得到的是这样的
function doSomething(){...}...***
我可以操纵***(上面)但是我不能改变doSomething函数...相反,我需要以某种方式在doSomething代码的末尾注入几行代码.
我需要这样做的原因是自定义框架调用doSomething(),这导致从我需要提取的服务器返回一个ID.这个ID只在doSomething函数中引用,所以我无法捕获它,除非我向该函数注入代码(除非我遗漏了一些东西).
有没有办法做到这一点?
我是Jboss的新手,但我有多个web应用程序,每个都使用spring-hibernate和其他开源库和portlet,所以基本上现在每个war文件都包含那些jar文件.如何将这些罐子移动到一个公共位置,这样我就不必将它们放在每个war文件中?我想位置是server/default/lib,但我不确定.
此外,它是如何的不同有那些罐子WEB-INF/lib 主场迎战JBOSS/server/default/lib?我会遇到任何类加载器问题吗?
我还有静态数据存储在静态字段中Singleton,这些数据是否会在所有WAR文件中共享?
到目前为止,我很适合使用C#windows应用程序.我即将转移到Asp.net开发一个网站.这个要求使我在一个表中放置了大约50列.我知道使用普通形式将其分成小表的概念.
我尝试使用谷歌搜索,但dint得到了很多结果.我需要知道具有50个属性的表是否会降低我的Web应用程序的性能?有人可以建议我这个.
正如标题所说,当我与网页交互时,如何找到触发的JavaScript事件?
我有一个方法,使用实体框架在不同的实体中进行一些更改/插入,所有这些都在一个事务范围内.这些变化非常有效.
当我需要在这些操作中使用存储过程时,我的问题就开始了.该过程仅在一个表中进行插入,并且没有明确的事务声明.我已经尝试过声明一个事务并在那里提交,但问题是一样的.
我不能在事务范围内调用实体框架(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) 如何返回名为duplicates的文件列表,即具有相同名称但存在于同一目录中的不同情况?
我不关心文件的内容.我只需要知道任何具有相同名称副本的文件的位置和名称.
示例重复:
/www/images/taxi.jpg
/www/images/Taxi.jpg
Run Code Online (Sandbox Code Playgroud)
理想情况下,我需要从基本目录中递归搜索所有文件.在上面的例子中它是/www/
c# ×2
javascript ×2
.net ×1
asp.net ×1
associations ×1
asynchronous ×1
bash ×1
command-line ×1
date ×1
debugging ×1
events ×1
file ×1
filesystems ×1
find ×1
function ×1
ios ×1
java ×1
jboss ×1
jboss-portal ×1
jboss5.x ×1
jquery ×1
linux ×1
many-to-many ×1
model ×1
mvvm ×1
ruby ×1
sql ×1
wpf ×1