我有MasterDetailPage layout.for DetailContent我在我的頁面中有contentpresenter,我正在加載該contentpresenter中的usercontrol。UWP:綁定對於具有UserControl的主詳細布局不起作用DetailContentpresenter
Usercontrol有一些頭字段,命令欄和ListView和GridView。
在主節中我加載了一些列表,並在詳細信息標題部分顯示了選定項的詳細信息,同樣基於所選擇的值我加載了其他列表並顯示在listview和gridview中。
我已將該對象綁定到contentpresenter的內容屬性。對象類看起來像下面
SampleClass
{
class1 header {get; set;}
Observablecollection<class2> listviewitems {get; set;}
Observablecollection<class3> gridviewitems {get; set;}
}
在我後面的代碼我加載這樣的數據,
SampleClass objMain = new SampleClass();
objMain.header = await viewmodel.Getheader();
objMain.listviewitems = await viewmodel.GroupUsersList(objMain.header.groupid);
objMain.gridviewitems = await viewmodel.GetChatList(objMain.header.groupid);
結合上述目的內容演示
<ContentPresenter x:Name="DetailContentPresenter" Grid.Column="1" Grid.RowSpan="2" Content="{x:Bind objMain ,Mode=OneWay}">
我結合這個數據在像下面的UserControl中,我有我在綁定標題數據的usercontrol中的stackpanel。
<StackPanel>
<TextBlock Name="txtGroupName" Text="{Binding header.name}"/>
<TextBlock Name="txtGroupType" Text="{Binding header.ptype}" />
<TextBlock Name="txtGroupDate" Style="{ThemeResource smallText}">
<Run>Created on:</Run>
<Run Text="{Binding header.startdate}"></Run>
</TextBlock>
</StackPanel>
我有一個gridview和listview在其中我像下面綁定listviewitems和gridviewitems。
<GridView x:Name="GroupMemberGridView"
ItemsSource="{Binding listviewitems}"
ItemTemplate="{StaticResource groupMemberGridViewTemplate}"
Grid.Row="3"
ItemClick="GridView_ItemClick"
IsItemClickEnabled="True"
Margin="5 0 0 0">
<ListView x:Name="GroupMemberListView"
ItemTemplate="{StaticResource groupMemberListViewTemplate}"
ItemsSource="{Binding gridviewitems}"
ShowsScrollingPlaceholders="True"
Grid.Row="3"
ItemClick="ListView_ItemClick"
IsItemClickEnabled="True">
現在發出這裏的時候,我使用{X:綁定objMain}被綁定到它加載用戶控件沒有數據的內容展示的內容,但是這是我必然的內容演示的對象是具有數據。
我發現的另一個觀察結果是,當我爲ContentPresenter的Content屬性使用{Binding objMain}時,它最初正在加載數據,但是當我點擊MasterList Item時,它並未更新數據。不過,當我單擊主列表項目時,我將更改的值分配給ContentPresenter的Content屬性。但是當我導航到某個其他頁面並重新啓動後,同一頁面重新加載時,它將顯示已更改的數據
而不是更改原來的'List'引用likw這個'objMain.listviewitems =等待viewmodel.GroupUsersList(objMain.header.groupid);',嘗試添加項目到這個列表。 –
好吧,我會試試這個。但是問題也出現在我將objmain.header顯示爲header.name等的標題項目中。它也沒有加載數據。所以你也可以解釋一下。 並提醒你一件事,這一切都是用戶控件的一部分,我在listpresenter中加載了listview和header items.which。 –
任何人都可以請幫助我嗎?我現在可以加載數據,但是當我點擊主列表項時,它不會被刷新。僅當您顯示您的點擊處理程序代碼時纔會顯示 –