如果绑定到可以为空的double(或int)的视图模型属性,那么如何允许用户不指定任何内容.
我看了验证,但我看不出如何能帮助你.
看起来如果文本框被清空,WPF将其视为空字符串,然后不会将其放入vm proptery中.
所以我能想到的两种方法是:
还有其他想法吗?我错过了什么吗?
科迪
使用以下代码,我得到了"Gotcha!" 用python.
try:
x = 0
y = 3/x
except Exception:
# ZeroDivisionError
print "Gotcha!"
我认为这是等效的C++代码,但它无法捕获该异常.
#include <iostream>
int main()
{
int x = 0;
//float y = 3.0/x;
int z = 0;
try {
z = 3 / x;
} catch (std::exception) {
std::cout << "Gotcha!";
}
std::cout << z;
}
Run Code Online (Sandbox Code Playgroud)
Floating point exception
什么地方出了错?我怎么能抓住这个例外?
我已经在Access基础中丢失了数据,并且我已经设法将它们带回来但是当我使用自动编号列复制表中的值时,它会增加数字.有没有办法将其更改为int然后将其恢复为AutoNumber?
我想从外部来源获得实时汇率,所以我找到了这个很棒的网络服务:
这项服务就像一个魅力,唯一的缺点是它不提供JSONP结果,只提供XML.因此,在尝试使用jQuery $ .ajax()来使用此Web服务时,我们遇到了跨浏览器问题.
所以我找到了Yahoo Query Language,它将结果作为JSONP和mangae返回,以使用其他Web服务并返回结果.这也有效,这是一个示例URL:
http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fwww.webservicex.net%2FCurrencyConvertor.asmx%2FConversionRate%3FFromCurrency%3DNOK%26ToCurrency%3DEUR'&format=json&diagnostics=true&callback=cbfunc
Run Code Online (Sandbox Code Playgroud)
这个URL返回JSONP结果并且像魅力一样工作,但是当我在我的代码中使用它时会出现问题:
$.ajax({
type: "GET",
url: urlToWebservice,
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function(data) {
$("#status").html("OK: " + data.text);
},
error: function(xhr, textStatus, errorThrown) {
$("#status").html("Unavailable: " + textStatus);
}
});
Run Code Online (Sandbox Code Playgroud)
当我尝试运行此代码时没有任何反应,我可以在我的Firebug javascript调试器中看到此错误消息:
cbfunc is not defined
Run Code Online (Sandbox Code Playgroud)
cbfunc是围绕JSON响应的容器的名称,但为什么说没有定义?
编辑:
这是我的新代码,但我仍然得到了 cbfunc is not defined
$.ajax({
url: "http://query.yahooapis.com/v1/public/yql?q=select%20*%20from%20xml%20where%20url%3D'http%3A%2F%2Fwww.webservicex.net%2FCurrencyConvertor.asmx%2FConversionRate%3FFromCurrency%3DNOK%26ToCurrency%3DEUR'&format=json&callback=cbfunc",
dataType: 'jsonp',
jsonp: 'callback',
jsonpCallback: 'cbfunc'
});
function cbfunc(data) {
alert("OK");
}
Run Code Online (Sandbox Code Playgroud)
并且"OK"消息永远不会被触发......
我不是说英语的人,而且我不是很擅长英语.我是自我思考的.我没有和其他人一起使用共同的代码库.我没有任何编程的朋友.我不与其他程序员合作(至少没有人关心这些事情).
我想这可能解释了我在找到好的明确的类名时遇到的一些问题.我试图找到某种"程序员字典",其中包含经常使用的单词及其含义.在阅读其他代码时,我必须经常查找单词,并且尽管许多人使用缩写,这也会带来额外的挑战.
我非常有限的词汇"迫使"我使用像xxManager,xxProvider,xxWhatever这样的坏类名.选择变量和方法名称通常不会有问题.
其他非英国人在这里:你是如何成功应对的?你学好英语这不是问题吗?或者你读过如此多的代码命名是否自然?还是和说英语的人讨论过很多?找到任何好的网站,文章或其他出版物?因为我从来没有读过任何关于使用我自己的语言进行编程的内容,所以我经常在尝试用我的语言找到单词时遇到更多问题......
PS:我发现的所有其他帖子都是关于混合母语和英语......我理解这可能有点偏离主题,可能会被关闭.
编辑:答案和我使用的其他东西的一些资源:
我有这个控制器方法:
public JsonResult List(int number)
{
var list = new Dictionary<int, string>();
list.Add(1, "one");
list.Add(2, "two");
list.Add(3, "three");
var q = (from h in list
where h.Key == number
select new
{
key = h.Key,
value = h.Value
});
return Json(list);
}
Run Code Online (Sandbox Code Playgroud)
在客户端,有这个jQuery脚本:
$("#radio1").click(function () {
$.ajax({
url: "/Home/List",
dataType: "json",
data: { number: '1' },
success: function (data) { alert(data) },
error: function (xhr) { alert(xhr.status) }
});
});
Run Code Online (Sandbox Code Playgroud)
我总是得到一个错误代码500.问题是什么?
谢谢
我正在尝试设置一个MenuItem可以选择的页码子菜单.我想绑定ItemsSource到一个页码列表(实际上是一个创建列表的转换器的PageCount),然后将子菜单IsChecked中每个页面的属性绑定MenuItem到PageIndex.我的问题是第二个绑定,因为它也需要转换器,但转换器需要知道MenuItem代表的页码,但我无法弄清楚如何将该信息传递给转换器.这是我到目前为止所尝试的内容.
<MenuItem Header="_Goto Page"
ItemsSource="{Binding
Path=CurrentImage.PageCount,
Converter={StaticResource countToList}}">
<MenuItem.ItemContainerStyle>
<Style TargetType="MenuItem">
<Setter Property="IsCheckable"
Value="True"/>
<Setter Property="IsChecked"
Value="{Binding
ElementName=MainWindow,
Path=CurrentImage.PageIndex,
Mode=TwoWay,
Converter={StaticResource pageNumChecked},
ConverterParameter={Binding
RelativeSource={RelativeSource Self},
Path=Content}}"/>
</Style>
</MenuItem.ItemContainerStyle>
</MenuItem>
Run Code Online (Sandbox Code Playgroud)
当然问题是ConverterParameter不能绑定,因为它不是一个DependencyProperty.所以我的问题是我如何传递我需要的信息,或者有另一种方法来做到这一点.
注意:就绑定而言,我已经尝试将MenuItems放在一个ListBox非常好用的内部,但导致子菜单以非标准方式运行.也就是说,当您打开子菜单时,整个ListBox被视为一个子菜单MenuItem.
编辑
所以这就是我到目前为止所做的工作.我尝试绑定到隐藏ListBox但是当我绑定MenuItem.ItemsSource到'ListBox.Items'时,我得到了ints 的列表而不是ListBoxItem我需要获取IsSelected属性的s 列表.所以我最终使用了Quartermeister的建议,即使用MultiBinding将IsChecked属性绑定到PageIndexin OneWay模式.为了处理另一个方向,我在事件上使用了一个事件处理程序Click.值得注意的是,起初我已经IsCheckable开始true并且正在处理这个Checked …
我听说使用StringBuilder比使用字符串连接更快,但我厌倦了一直在与StringBuilder对象进行摔跤.我最近接触过SLF4J日志库,与String.format相比,我喜欢格式化的"正确做事".那里有一个图书馆可以让我写下这样的东西:
int myInteger = 42;
MyObject myObject = new MyObject(); // Overrides toString()
String result = CoolFormatingLibrary.format("Simple way to format {} and {}",
myInteger, myObject);
Run Code Online (Sandbox Code Playgroud)
另外,是否有任何原因(包括性能但不包括对日期和重要数字格式的细粒度控制)为什么我可能想要在这样的库中使用String.format(如果它存在的话)?
我正在尝试为其中至少包含1个非字母数字符号的字符串创建正则表达式
我试图使用的代码是
Regex symbolPattern = new Regex("?[!@#$%^&*()_-+=[{]};:<>|./?.]");
Run Code Online (Sandbox Code Playgroud)
我试图只匹配其中一个,!@#$%^&*()_-+=[{]};:<>|./?.但它似乎没有工作.
我有一些我正在测试的XML,它将日期和时间设置为其中一个元素.这显然会在每次测试运行时发生变化.
有没有办法比较XML并忽略此节点值,或只是用正则表达式或其他东西检查.
我正在测试的XML如下:
<xml-fragment>
<core:date xmlns:core="http://www.company.com/commerce/common/V1/core">2010-06-24T21:41:22.456+01:00</core:date>
<core:serviceName xmlns:core="http://www.company.com/commerce/common/V1/core">calculateNextAndFuturePayments
</core:serviceName>
<core:ackRequired xmlns:core="http://www.company.com/commerce/common/V1/core">false</core:ackRequired>
<v1:viewingCardNumber xmlns:v1="http://www.company.com/commerce/calculateNextAndFuturePayment/V1">405536053
</v1:viewingCardNumber>
</xml-fragment>
Run Code Online (Sandbox Code Playgroud)
我想检查初始元素(核心:日期)是否为日期格式,但这些值与平等目的无关.
谢谢
binding ×2
c# ×2
java ×2
jquery ×2
json ×2
wpf ×2
asp.net-mvc ×1
autonumber ×1
c++ ×1
coding-style ×1
database ×1
javascript ×1
jsonp ×1
menuitem ×1
ms-access ×1
naming ×1
regex ×1
string ×1
validation ×1
web-services ×1
xmlunit ×1