我有一个带有ID的视图模型,我希望能够通过查询字符串进行设置。在XAML中有一种方法可以将属性的值设置为查询字符串值吗?这是当前的XAML:
<local:DetailsViewModel x:Key="viewModel" DetailsID="1" />
XAML是否有效?
<local:DetailsViewModel x:Key="viewModel" DetailsID="{Binding HtmlDocument.Querystring["id"]}" />
答案 0 :(得分:1)
要在代码中访问查询字符串,您可以使用以下内容:
var query = System.Windows.Browser.HtmlPage.Document.QueryString;
如您所见,HtmlPage是一个静态类。但是,在Silverlight中无法绑定到静态实例(在WPF中,您可以使用{x:Static})。
另一方面,大多数人使用常规CLR对象作为其ViewModel,而不是使用DependencyProperties的DependencyObjects,这被认为是过度杀伤。因此,您无法使用绑定的属性创建ViewModel!
你有什么理由不想在代码中这样做吗?