小编Dom*_*nic的帖子

它只是我,还是WPF的一堆数据绑定和自定义IValueConverters?

说真的,似乎每次我想让我的UI元素互相交谈,我最终编写了一个新的,定制的,IValueConverter :(有人告诉我,我做错了,拜托!

例子:

  • 我希望只有在我的文本框包含有效URI时才启用按钮.很棒,是时候编写一个了UriIsValidConverter!
  • 哎呀,我也想在我处理的时候禁用它.我想我现在需要编码了UriIsValidAndBoolIsFalseMultiConverter!
  • 我想在列表框中显示某个目录(由文本框指定)中的文件列表.我想我需要一个DirectoryPathToFileList转换器!
  • 哦,嘿,我想在列表视图中的每个文件的图标.FileInfoToBitmap转换器的时间!
  • 如果我的状态字符串包含"错误",我希望我的状态为红色,否则为绿色.是的,我得编码了StatusStringToSolidColorBrushConverter!

我真的认为这并不比使用TextChanged事件(或其他)手动连接所有内容的旧Windows Forms方法好多少.我猜这仍然是一个选择.也许这就是人们真正做的事情,而我正在努力使一切都适合数据绑定范式?

所以,是的,请告诉我这是否真的是WPF编码的方式---或者如果我做错了,如果是的话,我该做什么.

data-binding wpf

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

是否有一种标准方法可以从Windows窗体中的自定义对话框返回值?

所以现在我的项目有一些自定义对话框,可以提示用户过生日等等.现在他们只是做一些事情,比如this.Birthday一旦他们得到答案(属性类型DateTime?,设置属性,其中null表示"取消").然后调用者检查Birthday它创建的对话框的属性以找出用户回答的内容.

我的问题是,是否有更标准的模式来做这样的事情?我知道我们可以设置this.DialogResult基本的OK/Cancel内容,但是在Windows窗体中是否有一种更通用的方式来表示"这里是我收集的数据"?

.net user-interface winforms

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

请解释.call(false)的奇怪行为

> (function () { return this; }).call(false)
false

> !!(function () { return this; }).call(false)
true
Run Code Online (Sandbox Code Playgroud)

在Firefox 4 beta和Chrome中都是最新的.

它就像......什么时候是布尔值,而不是布尔值?

javascript boolean

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

ES5是否与__lookupGetter__对应?

我知道这Object.defineProperty很有趣,__defineGetter__也是__defineSetter__非标准API 的绝佳替代品,但有没有类似的对应物__lookupGetter__?或者某种方式实现类似的事情?

javascript getter ecmascript-5

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

JavaScript forEach实现

forEach在教程网站上找到了一个函数的代码片段,除了检查是否i在数组中的行之外,一切对我都很有意义:

    if (i in this) {       
Run Code Online (Sandbox Code Playgroud)

如果我们已经有一个具有停止条件的for循环,为什么还要烦恼?

if (!Array.prototype.forEach) {
Array.prototype.forEach = function(fun /*, thisp*/) {
    var len = this.length >>> 0;
    if (typeof fun != "function") {
        throw new TypeError();
    }

    var thisp = arguments[1];
    for (var i = 0; i < len; i++) {
        if (i in this) {
            fun.call(thisp, this[i], i, this);
        }
    }
};
}
Run Code Online (Sandbox Code Playgroud)

javascript

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

如何在Amazon EC2上安装支持PNG的GraphicsMagick?

如果您天真地按照GraphicsMagick网站上的步骤操作,在运行后./configure,您最终没有PNG支持:

checking for PNG support ...
checking png.h usability... no
checking png.h presence... no

PNG               --with-png=yes        no
Run Code Online (Sandbox Code Playgroud)

这使得一个非常无用的GraphicsMagick安装.

如何启用PNG支持?Libpng似乎已经安装,但未检测到:

> $ sudo yum install libpng
> Package 2:libpng-1.2.49-1.12.amzn1.x86_64 already installed and latest version
Run Code Online (Sandbox Code Playgroud)

amazon-ec2 libpng graphicsmagick

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

我的通用模板应该使用T还是T &&?

我正在使用具有许多重载的给定函数的文件,如下所示:

inline X f(ScriptWrappable* impl, Y y, Z z) { ... }
inline X f(Node* impl, Y y, Z z) { ... }
inline X f(RawPtr<T> impl, Y y, Z z) { ... }
inline X f(const RefPtr<T>& impl, Y y, Z z) { ... }
inline X f(ScriptWrappable* impl, Y y, Z z) { ... }
inline X f(const String& impl, Y y, Z z) { ... }
inline X f(int64_t impl, Y y, Z z) { ... } …
Run Code Online (Sandbox Code Playgroud)

c++ templates c++11

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

如何在传递ShellCheck时通过环境变量将glob传递给shell脚本

假设我有一个shell脚本,test.sh它应该回显一些值.我希望能够通过具有glob扩展的环境变量传递这些值:

$ ls
1.js  2.js  test.sh*

$ FOO="*.js" bash ./test.sh
1.js 2.js
Run Code Online (Sandbox Code Playgroud)

你说容易!写吧

#!/bin/bash
echo $FOO
Run Code Online (Sandbox Code Playgroud)

事实上,这是有效的.但它没有通过ShellCheck,后者通过使用隐式globbing /扩展(SC2086)来调用我们.(这是公平的;在原始代码中,回声线是cp $FOO $BAR,确实我们不想扩展$BAR;这个错误捕获了错误.)

所以,为了使这个更明确,我希望以下可能会起作用:

#!/bin/bash
array=( $FOO )
echo "${array[@]}"
Run Code Online (Sandbox Code Playgroud)

但不是:我们最终得到了SC2206.

是否有规范的方式来做这种事情,这属于ShellCheck作者认为的最佳实践?(请随意使用www.shellcheck.net上的在线检查程序对其进行测试.)这完全是错误的做法吗?ShellCheck的作者似乎不太可能想到这个用例......

bash shell shellcheck

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

如何判断我是使用.NET在x64还是x86上?

我想根据用户运行的平台为我的用户提供正确的程序升级版本链接,因此我需要知道我目前是在x86操作系统还是x64操作系统上运行.

我发现最好的是使用Environment.GetEnvironmentVariable("PROCESSOR_ARCHITECTURE"),但我认为会有一些内置设施吗?

.net 64-bit x86

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

如何根据Content-Length标题检查实际内容长度?

用户可以将文档发布到我们的Web服务.我们将其流到其他地方 但是,在流式传输结束时,我们需要确保他们不会对内容长度撒谎.

我假设,如果headerContentLength > realContentLength请求将等待他们发​​送其余的,最终超时.所以这可能没关系.

怎么样headerContentLength < realContentLength?即如果他们说完成后他们继续发送数据怎么办?

这是由Node.js以任何方式处理的吗?如果没有,有什么好办法检查?我想我可以计算一些data事件监听器内的字节数- 即req.on("data", function (chunk) { totalBytes += chunk.length; }).这似乎是一个kludge.

http node.js

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