小编aKz*_*enT的帖子

Sencha Touch localstore代理在删除记录后不删除索引

我在使用Sencha Touch数据存储和localproxy时遇到了一些麻烦.基本上,当使用store.remove(record)方法从存储中删除记录时,记录本身将从内存中删除,但是商店中对它的Id引用不会被删除,所以当页面刷新时,我收到一个可爱的"Uncaught TypeError:无法读取属性'isModel'未定义"

这是商店的代码:

Ext.define("App.store.Data", {
    extend: "Ext.data.Store",
    requires: "Ext.data.proxy.LocalStorage",
    config: {
        model: "App.model.Data",
        autoSync: true,
        proxy: {
            type: 'localstorage',
            id: 'app-store'
        }
    }
});
Run Code Online (Sandbox Code Playgroud)

以下是数据编辑器页面上删除按钮的代码

onDeleteHomeworkCommand: function () {

    var dataEditor = this.getDataEditor();
    var currentData = dataEditor.getRecord();
    var dataStore = Ext.getStore("Data");

    dataStore.remove(currentData);
    dataStore.sync();

    this.activateDataList();
},
Run Code Online (Sandbox Code Playgroud)

编辑:

以下是调用remove方法之前数据存储的屏幕截图: 在此输入图像描述

以下是一个: 在此输入图像描述

请注意,ID仍然保留在商店列表中,这会在刷新页面时给出未定义的错误.

javascript extjs touch

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

为什么iframe默认是内联元素?

iframe =内联?

在调试一些布局问题时,我惊讶地发现<iframe>元素的默认显示属性为inline.

对我来说,这似乎很奇怪,特别是考虑到可以应用height,并width<iframe>由浏览器,这不应该是一个简单的内联元素的情况下尊重.

所以有人能解释一下这背后的原因吗?

演示

HTML

<iframe id="test"></iframe>
Run Code Online (Sandbox Code Playgroud)

CSS

alert($('#test').css('display'))
Run Code Online (Sandbox Code Playgroud)

https://jsfiddle.net/0tdLr9pq/

谢谢!

html css iframe layout html5

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

哪里可以找到4.0的TPL数据流版本?

我正在寻找TPL数据流库的.NET 4.0版本.

Nuget包有一个4.0版本的库,但它似乎以.NET 4.5为目标.

我发现了4.0版本的各种引用,就像在这个论坛中一样:

http://social.msdn.microsoft.com/Forums/en-US/tpldataflow/thread/6206c714-6dee-4d17-a880-26d0c137a167

但是提到的链接只是将我重定向到库的Nuget页面.

有谁知道我在哪里可以找到一个针对.NET 4.0的工作版本?

.net .net-4.0 task-parallel-library nuget tpl-dataflow

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

如何在Caliburn.Micro中处理登录/注销?

我是Caliburn.Micro的新手,我想知道在我的应用程序中处理用户登录/注销周期的最佳方法是什么.我在网上看到了一些使用空Shell-View实现这一点的建议,它在LoginView和主应用程序视图之间切换,每个都有一个自定义ViewModel.

我真的不喜欢这个解决方案,因为对我来说这些是两个独立的窗口,具有非常不同的属性(标题,图标,大小),它似乎是一个不干净的解决方案,两个窗口看起来像另一个窗口.另一个问题是,登录窗口来自一个我无法控制但不使用Caliburn.Micro的实用程序库,它是一个普通的旧窗口,当用户单击"登录"时它会给我一个事件.

我还看到了在Bootstrapper启动方法中显示此Dialog的建议,但我看到的问题是用户可以选择"Logout"应用程序,它应该再次显示Login对话框.我在处理Bootstrapper中的Views之间切换似乎是错的.

我想要的是使用某种类似于Caliburn Conductor的ApplicationViewModel或ApplicationController,但它不是在Window内的Views之间切换,而是应该在LoginWindow和MainWindow之间切换,并且还应该处理整个应用程序的Closing(还需要退出).在激活时,它将显示LoginWindow,处理Login事件,然后切换到主窗口(Shell).如果用户选择"LogOut",则该事件应再次冒泡到ApplicationViewModel/Controller,这将停用/关闭MainWindow,执行Logout,然后再次显示LoginDialog.类似的Close事件会执行Logout,但随后关闭整个应用程序.

所以我的问题是:

  1. 你怎么看待这个解决方案,你有另一个/更好的解决方案吗?
  2. 我该如何实现?;-)

非常感谢!

.net c# wpf caliburn.micro wpf-4.0

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

如何将2d numpy数组转换为二进制指示符矩阵以获得最大值

假设我有一个2d numpy数组,表示n个类中m个样本的概率(每个样本的概率总和为1).

假设每个样本只能在一个类别中,我想创建一个与原始形状具有相同形状的新数组,但只有二进制值表示哪个类具有最高概率.

例:

[[0.2, 0.3, 0.5], [0.7, 0.1, 0.1]]
Run Code Online (Sandbox Code Playgroud)

应转换为:

[[0, 0, 1], [1, 0, 0]]
Run Code Online (Sandbox Code Playgroud)

似乎amax几乎已经做了我想要的,但是我想要一个指标矩阵而不是索引,如上所述.

看起来很简单,但不知怎的,我无法用标准的numpy函数搞清楚.我当然可以使用常规的python循环,但似乎应该有一个更简单的方法.

如果多个类具有相同的概率,我宁愿选择只选择其中一个类的解决方案(在这种情况下我不关心哪个类).

谢谢!

python numpy machine-learning python-2.7

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

定期更新EF中多个线程的实体

我有以下场景:

我有一个数据库存储由服务器捕获和处理的作业.通过实体框架访问数据库.

服务器使用多个线程并行处理作业.为此,我有一个线程,它定期检查数据库中的新作业并将它们分发给工作线程.

我现在的问题是我的实体有一个Progress属性,应该由工作线程更新并定期写入数据库.

工作线程经常更新属性(每秒多次),但是对于我的要求,如果数据库每隔几秒更新就足够了,我不想对数据库进行许多不必要的更新.

到目前为止,我的解决方案是让工作线程直接将进度写入实体,并让检查更新的线程也将这些更改发布到数据库.

我的问题是:从EF的角度来看,这个线程是否安全.我可以从一个线程更新实体的属性,并将更改写入另一个线程上的数据库吗?我是否需要锁定?请记住,我只在一个线程中使用DataContext(最少添加,因为我不知道在更新(非POCO)实体时EF在内部做了什么.

现在的另一个要求是我需要在工作进程中从数据库加载其他数据.我假设我必须为此使用单独的DataContexts,我真的不喜欢在同一个线程中管理来自两个独立数据上下文的实体.

你有什么建议如何以一种很好的方式构建它?

由于每个worker只更新一个Job-Entity的状态,因此一个想法是将进程公开为worker-threads类中的属性,该属性由主线程获取,然后主线程将更新实体并将更新发布到数据库.但是我仍然需要工作线程中的原始Job-Entity来读取配置数据,如果我将它重新连接到工作线程的DataContext,我就不能再在主线程中使用Entity了.如果不是真的有必要,我想避免加载同一个实体2次......

是否可以自动复制实体,在2个单独的DataContexts中使用它?

谢谢你的任何想法!

.net c# architecture multithreading entity-framework

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

仅在 WCF Web 服务中需要某些方法的凭据

我有一个具有不同方法的 UserAccountService,其中一些需要对用户进行身份验证(例如 ChangePassword、ChangeUserData),而另一些则不需要(RegisterUser)。

但是,我似乎无法使其正常工作,因此只有某些方法需要身份验证。

需要身份验证的方法装饰有

[PrincipalPermission(SecurityAction.Demand, Authenticated = true)]
Run Code Online (Sandbox Code Playgroud)

在我的 app.config 中,我指定了一个绑定,它使用加密并请求用户名凭据:

    <binding name="authenticatedBinding">
      <security mode="TransportWithMessageCredential">
        <message clientCredentialType="UserName" />
      </security>
    </binding>
Run Code Online (Sandbox Code Playgroud)

(我使用的是 basicHttpBinding)

我还配置了一个自定义身份验证提供程序:

      <serviceCredentials>
        <userNameAuthentication userNamePasswordValidationMode="Custom" customUserNamePasswordValidatorType="..." />
      </serviceCredentials>
Run Code Online (Sandbox Code Playgroud)

使用此配置,我似乎无法在未经身份验证的情况下调用服务上的任何方法。

如果我省略了安全配置,那么我可以调用不需要身份验证的方法,但不再传输消息凭据。

我如何配置我的服务,以便它允许调用所有方法,并且只需要在 PrincipalPermission 要求时设置用户名/密码?

我使用 Silverlight 作为我的客户,如果这很重要的话......

谢谢!

c# authentication silverlight wcf web-services

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

限制WPF数据网格中"自动"列的最大宽度

我有一个标准的WPF网格,其中2列定义为:

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*" MinWidth="200" />
        <ColumnDefinition Width="Auto" />
    </Grid.ColumnDefinitions>
    ...
</Grid>
Run Code Online (Sandbox Code Playgroud)

我想要实现的是第二列根据其内容自动调整大小,第一列获取所有剩余空间.但是我也希望第一列永远不会少于200像素.问题是,使用此配置,我的自动列将被切断而不是调整大小.

我真正想要的是WPF首先为第一列分配200个像素,然后占用所有剩余空间并要求第二列的内容按照剩余宽度的最大大小限制来调整自身大小.如果内容需要的空间较少,则应将剩余空间分配给第一列(使其大于200像素).

使用案例:我的第二列是具有固定宽高比的图像,因此对于给定高度,存在最佳宽度.我还有一个第一列,其中包含一些应始终可见的控件.如果有更多可用空间,我想将空间分配给第一列而不是第二列.

有没有办法用默认的WPF控件实现这一点,还是我需要为此编写自己的Grid?

.net wpf layout xaml resize

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

采用DateTime值并仅接受时间,反之亦然

我正在开发一个应用程序,以作为待办事项列表,我想知道如何从日期时间框接受一个值,但只使用日期的值,或时间的值.我现在这样做.

DateTime ted = appointmentDateTimeDate.Value; //The date
DateTime at = appointmentDateTimeTime.Value;  //The time
Run Code Online (Sandbox Code Playgroud)

我应该这样做吗?

c# datetime

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

目标 32 位或 64 位本机 DLL,具体取决于环境

我有一个 32 位和 64 位版本 (x86) 的本机 DLL。我想创建一个适用于两种架构(任何 CPU)的包装器,并根据当前环境(32 位或 64 位,运行时!)加载正确版本的 DLL。这个过程应该自动发生,所以我的 DLL 的用户不需要针对特定​​的体系结构。

有没有关于如何做到这一点的最佳实践?任何可以指导我的例子?

我找到了一种可能的解决方案,它为每个架构使用托管代理,然后使用该Assembly.Resolve事件加载正确的版本。但是,这要求我除了 2 个非托管库之外还有 3 个托管程序集,这似乎有点过头了。

还有其他解决方案吗?

.net c# dll pinvoke

4
推荐指数
2
解决办法
2946
查看次数