我有一个基础XAML页面,它是导航布局的基础,顶部的按钮在中间打开各种视图。这是使用导航Frame
和UriMapper
完成的。
我在导航面板上放置了一些控件(DatePicker
s),因为视图需要它们来过滤掉数据。
但是,我不知道如何将任何类型的数据绑定应用于后续视图,毕竟这些视图是单独的XAML文件。
我需要能够从DataPicker
读取值,并且理想情况下,会对用户更改的值做出反应。
我该怎么做呢?
答案 0 :(得分:1)
这是我倾向于做的事情。
使用此模式创建CriteriaService
类: -
public CriteriaService : INotifyPropertyChanged
{
private DateTime myStartDate;
public DateTime StartDate
{
get { return myStartDate; }
set { myStartDate = value; //Notify property changed }
}
// Other criteria properties here
//INotifyPropertyChanged implemenation
}
现在将此服务的实例添加到App.Xaml.cs: -
<local:CriteriaService x:Key="CritreaService" />
在您的主页中,您可以执行以下操作: -
<Grid x:Name="LayoutRoot" DataContext="{StaticResource CriteriaService}">
这样您就可以在条件控件中使用SelectedDate="{Binding StartDate}"
之类的简单绑定。
现在,您可以在各种页面中进行选择。在代码中,您可以访问CriteriaService
: -
CriteriaService criteria = App.Resources["CriteriaServices"] as CriteriaService;
或者如果你想在页面xaml中绑定它的值,你可以使用类似的东西: -
<local:SomeStrangeControl StartDate="{Binding StartDate Source={StaticResource CriteriService}}" />