[英]Wpf. Problems using Culture
我想申请多种语言。
我这样做(从UI绑定):
private CultureInfo _culture;
public CultureInfo Culture
{
get { return _culture; }
set
{
if (_culture != value)
{
RaisePropertyChanging(() => Culture);
_culture = value;
RaisePropertyChanged(() => Culture);
if (CultureManager.UICulture.Name != _culture.Name)
{
CultureManager.UICulture = _culture; // line A
}
}
}
}
但在A行上,发生异常:
用户代码未处理NullReferenceException
会是什么
您指出的行不太可能引发异常。 因为_culture
为null
,它更有可能抛出if
。
您要么需要通过添加guard子句来禁止将区域性设置为null
:
private CultureInfo _culture;
public CultureInfo Culture
{
get { return _culture; }
set
{
if(value == null)
throw new ArgumentNullException("value");
if (_culture != value)
{
RaisePropertyChanging(() => Culture);
_culture = value;
RaisePropertyChanged(() => Culture);
if (CultureManager.UICulture.Name != _culture.Name)
{
CultureManager.UICulture = _culture; // line A
}
}
}
}
或者,仅在设置了区域性之后才能更改UI区域性:
if (_culture != null && CultureManager.UICulture.Name != _culture.Name)
{
CultureManager.UICulture = _culture; // line A
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.