Я некоторое время боролся с этим.Я немного новичок, но я много скрывался и все еще не мог найти решение своей проблемы, поэтому я решил опубликовать свой вопрос здесь.
Я привязываю сводку к коллекцииобъектов, которые я хочу отобразить, чтобы создать галерею.Вот мой сводный элемент управления, привязанный к списку с названием gallery, где каждый объект содержит 2 строки (url и description).
<controls:Pivot ItemsSource="{Binding gallery}" Grid.Row="0" x:Name="galleryPivot">
<controls:Pivot.ItemTemplate>
<DataTemplate>
<StackPanel>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Image Source="{Binding url}" />
<Grid Visibility="{Binding ElementName=galleryPivot, Path=DataContext.ShowDetail}">
<ListBox>
<ListBoxItem>
<StackPanel>
<TextBlock Text="{Binding description}" />
</StackPanel>
</ListBoxItem>
</ListBox>
</Grid>
</Grid>
</StackPanel>
</DataTemplate>
</controls:Pivot.ItemTemplate>
</controls:Pivot>
Datacontext является моделью представления и инициализируется в конструкторе страницы.Вот моя ViewModel:
public class GalleryViewModel : INotifyPropertyChanged
{
public List<Gallery> gallery
{
get { return Globals.pictures; }
}
private Visibility _showDetail = Visibility.Collapsed;
public Visibility ShowDetail
{
get { return _showDetail; }
set {
_showDetail = value;
RaisePropertyChanged("ShowDetail");
}
}
public GalleryViewModel()
{ }
public event PropertyChangedEventHandler PropertyChanged = delegate { return; };
protected void RaisePropertyChanged(string propertyName)
{
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
Объект галереи представляет собой список в моей ViewModel, как свойство ShowDetail.Поскольку ShowDetail находится за пределами области действия, я попытался установить ElementName, как описано здесь .
Шарнир хорошо привязывается к списку галереи, но когда я изменяю значение ShowDetail, сетка выигралат спрятатьЯ также попытался установить ElementName в LayoutRoot, но он все равно не будет работать.
Мой вопрос, как я могу связать видимость, когда она выходит за рамки элемента шаблона?