如何在空状态下初始化Uri对象。
首先想到的是做这样的事情
//does not work
Uri myUri = Uri.Empty
这个也不起作用
Uri myUri = new Uri(string.Empty)
原因是我将图像路径存储在数据库中,如果没有定义图像,我有一个空白的数据库记录。
我知道有一些方法可以使用转换器处理此问题,并在image_path为空时返回默认的空白图像Uri ...
如何最好地处理与ViewModel Uri Property的绑定?
转换器是否可行?如果您想要返回许多不同的默认图像,您将如何处理它?</ p>
答案 0 :(得分:1)
你可以做这样的事情
Uri uri = null;
bool someValue = Context.TryGetUri(entity, out uri);
答案 1 :(得分:1)
只需设置:
new Uri("about:blank");
为我工作。
答案 2 :(得分:0)
处理此问题的其他方法是,您可以更改数据查询,例如,如果您使用的是sql employees表,那么您可以编写如下所示。
select Employeeid, FirstName, LastName,
case when ImageUrl is null then 'http://www.codeodor.com/images/Empty_set.png' else ImageUrl end as ImageUrl from employees
这将处理null并返回空图像的默认URL;
希望它适合你。答案 3 :(得分:0)
我有同样的问题,经过一段时间的思考,我认为System.Uri
没有默认的构造函数,因为它没有意义。
实际上,URI
标识了资源,因此如果资源不存在或无法定位,我认为最好的方法是处理null
引用而不是空Uri
在您的代码中,而不是(伪代码):
if (myUri != Uri.Empty)
{
// do something
}
你会得到:
if (myUri != null)
{
// do something
}
在这种情况下,如果适合您的工作流程,您还可以使用Null-conditional Operator。