我的主頁有appbar,它在不同的頁面上共享。我編寫了下面的代碼來打開一個gridview項目點擊的appbar。使用綁定屬性在metro風格應用中打開appbar
XAML
<AppBar Opened="AppBar_Opened" IsOpen="{Binding IsAppBarOpen}">
後端
private void Clock_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
App.ViewModel.SelectedClock = (Clock)ThemeGridView.SelectedItem;
App.WorldViewModel.IsAppBarOpen = true;
}
private void ThemeGridView_ItemClick(object sender, ItemClickEventArgs e)
{
App.ViewModel.SelectedClock = (Clock)ThemeGridView.SelectedItem;
App.WorldViewModel.IsAppBarOpen = true;
}
WorldViewModel
private bool _IsAppBarOpen;
public bool IsAppBarOpen
{
get { return _IsAppBarOpen; }
set { base.SetProperty(ref _IsAppBarOpen, value); }
}
的GridView XAML
<GridView
Grid.Row="1"
Grid.Column="1"
x:Name="ThemeGridView"
ItemsSource="{Binding Clocks}"
ItemTemplate="{StaticResource WorldClockTemplate}"
SelectionChanged="Clock_SelectionChanged"
SelectionMode="None"
IsItemClickEnabled="True"
ItemClick="ThemeGridView_ItemClick"
>
<GridView.ItemsPanel>
<ItemsPanelTemplate>
<WrapGrid />
</ItemsPanelTemplate>
</GridView.ItemsPanel>
</GridView>
但是,當我選擇gridview項目時,appbar沒有彈出。沒有綁定錯誤,所以它真的很神祕!
您可以發佈您的GridView和項目竊聽事件的定義是什麼? – Fixus
你可以在你的xaml中添加DataContext嗎?也許你的約束是錯誤的。另一方面,我認爲你不應該這樣做,因爲不要指望在用戶界面中點擊時打開appbar。您想做什麼?當單擊右鍵或滑動時,AppBar將被調用。 –
@Fixus我已經添加了gridview的定義。我認爲SelectionChangedEvent的工作原理與點擊對象相同?我嘗試了與右擊事件,但它沒有奏效。 – Bitsian