我想编写一个ViewModel,它始终知道View中某些只读依赖项属性的当前状态.
具体来说,我的GUI包含一个FlowDocumentPageViewer,它一次从FlowDocument显示一个页面.FlowDocumentPageViewer公开了两个名为CanGoToPreviousPage和CanGoToNextPage的只读依赖项属性.我希望我的ViewModel始终知道这两个View属性的值.
我想我可以使用OneWayToSource数据绑定来做到这一点:
<FlowDocumentPageViewer
CanGoToNextPage="{Binding NextPageAvailable, Mode=OneWayToSource}" ...>
Run Code Online (Sandbox Code Playgroud)
如果这是允许的,那将是完美的:每当FlowDocumentPageViewer的CanGoToNextPage属性发生更改时,新值将被推送到ViewModel的NextPageAvailable属性,这正是我想要的.
不幸的是,这不编译:我收到一个错误,说'CanGoToPreviousPage'属性是只读的,不能从标记设置.显然只读属性不支持任何类型的数据绑定,甚至不支持与该属性相关的只读数据绑定.
我可以让我的ViewModel的属性为DependencyProperties,并使OneWay绑定以另一种方式运行,但我并不为关注点分离违规而疯狂(ViewModel需要对View的引用,MVVM数据绑定应该避免).
FlowDocumentPageViewer不公开CanGoToNextPageChanged事件,我不知道从DependencyProperty获取更改通知的任何好方法,没有创建另一个DependencyProperty来绑定它,这在这里看起来有点过分.
如何让ViewModel了解视图的只读属性的更改?
我正在开发一个由Umbraco管理的网站.我需要存储有关图像和客户端的数据.我认为我无法将这些数据存储在现有表中.
有什么理由我不应该将我需要的表添加到Umbraco数据库中,而不是创建一个单独的数据库?到目前为止,我喜欢Umbraco,但文档有点薄,我没有找到任何建议.
TIA
假设Y是来自类X的派生类,X将foo声明为虚拟.假设y是(Y*)类型.然后((X*)y) - > foo()将执行Y版本的foo(),但是((X)*y).foo()将执行X版本.你能告诉我为什么多态性不适用于解引用的案例吗?我希望任何一种语法都会产生Y版本的foo().
除了最好的做法,有没有令人信服的理由不这样做?
我正在编写一个post-commit钩子,用于Google Code项目,该项目通过JSON对象提供提交数据.GC提供HMAC身份验证令牌以及请求(在JSON数据之外),因此通过验证该令牌,我可以高度确信JSON数据是良性的(因为不信任Google)并且有效.
我自己(简短)的调查表明,JSON恰好是完全有效的Python,但"\/"转义序列除外- GC似乎没有生成.
因此,当我使用Python 2.4(即没有json模块)时,eval()看起来真的很诱人.
编辑:为了记录,我不是在问这是不是一个好主意.我非常清楚它不是,我非常怀疑即使我最终将它用于这个项目,我也会将这项技术用于任何未来的项目.我只是想确保我知道如果我这样做会遇到什么样的麻烦.:-)
当我按照MSDN文档使用CA2W将big5字符串转换为Visual Studio 2005中的unicode字符串时,我遇到了一个奇怪的编译错误.
这是我写的代码:
#include <string>
#include <atldef.h>
#include <atlconv.h>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
string chineseInBig5 = "\xA4\xA4\xA4\xE5";
ATL::CA2W(chineseInBig5.c_str());
return 0;
}
Run Code Online (Sandbox Code Playgroud)
编译错误:错误C3861:'AtlThrowLastWin32':找不到标识符
我不知道这怎么可能发生.AtlThrowLastWin32的文档显示atldef.h是必需的,但我在atldef.h中找不到AtlThrowLastWin32的声明.
在为未来的MySQL - > Solr迁移测试Solr安装时,很明显,与MySQL之类的RDBMS相比,Solr与构建良好数据结构的"规则"以及扩展的高效搜索有很大不同.最明显的是数据没有(或似乎没有)标准化到相同的程度.
有没有人对从MySQL到Solr的最佳转换方式有什么建议?是否有任何已建立的模式用于在非RDBMS(特定Solr)中构建数据,我应该学习哪些?有什么常见的陷阱要避免吗?这只是将相关表格反规范化为对象的情况吗?
我读过几次unpack()比这更快substr(),特别是随着子串数量的增加.但是,这个基准建议不然.我的基准测试是否存在缺陷,或者是unpack()旧版Perl的保留所谓的性能优势?
use strict;
use warnings;
use Benchmark;
my ($data, $format_string, $n_substrings);
my %methods = (
unpack => sub { return unpack $format_string, $data },
substr => sub { return map {substr $data, $_, 1} 0 .. $n_substrings - 1 },
);
for my $exp (1 .. 5){
$n_substrings = 10 ** $exp;
print $n_substrings, "\n";
$format_string = 'a1' x $n_substrings;
$data = 9 x $n_substrings;
Benchmark::cmpthese -2, \%methods;
}
Run Code Online (Sandbox Code Playgroud)
输出(在Windows上):
10
Rate unpack substr …Run Code Online (Sandbox Code Playgroud) 我经常在Mac Pro(e2008)(Mac OS X 10.5.6)的bootcamp分区上重启Windows.因为我喜欢花时间重新启动其他东西,而不是只是坐在那里我想编写/执行一个基本上可以做的简单的AppleScript:
第2部分我已经使用了一段时间,我在网上找到的脚本如下:
do shell script "bless -mount /Volumes/WinVista/ -legacy -setBoot -nextonly" with
administrator privileges
do shell script "shutdown -r now" with administrator privileges
Run Code Online (Sandbox Code Playgroud)
这很好用,除非应用程序打开它们没有正确关闭(基本上它们正在'强制退出')所以我想先让脚本关闭应用程序然后执行重启.
我在Stack Overflow上发现了类似的问题,但由于我对AppleScript的理解几乎不存在,我不知道如何将这个结合起来:( 使用Applescript退出所有应用程序?)和重启的脚本.
这可能吗?如果是这样,我将不胜感激,你可以向我投掷任何建议/帮助/脚本.
此外,我几乎没有AppleScripting的经验,到目前为止我所做的只是复制/粘贴我在网上发现的内容,以防万一.
谢谢你的阅读.
Jannis
假设用户输入的是十进制数,例如.5. 2155(有4位小数).它可以自由存储(int,double)等.
是否有任何聪明(或非常简单)的方法来找出这个数字有多少小数?(有点像问题是如何通过屏蔽最后一位来找到数字是偶数还是奇数).