Mám ovládací prvok Pivot, ktorý používam v rámci XAML nasledovne. Kontingenčný názov som prepojil s metódou v mojom modeli zobrazenia, pretože jeho obsah sa bude líšiť v závislosti od toho, čo sa zobrazuje.
<controls:Pivot x:Name="MainPivot" ItemsSource="{Binding PivotItemHeaders}" Title="{Binding ApplicationTitle}" >
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding Description}"/>
</DataTemplate>
</controls:Pivot.HeaderTemplate>
<controls:Pivot.ItemTemplate>
<DataTemplate>
<ListBox x:Name="EventsListbox"
ItemsSource="{Binding allEventItems}"
ItemTemplate="{StaticResource EventDisplay3}"
SelectionChanged="EventsListbox_SelectionChanged"/>
</DataTemplate>
</controls:Pivot.ItemTemplate>
</controls:Pivot>
Zbierka položiek sa obnovuje aVäzba pre tieto objekty funguje dobre - názov kontingenčného súboru sa však novou hodnotou neobnovuje. Zdá sa, že uviazol na hodnote pri prvom zobrazení ovládacieho prvku stránky / pivotu.
Nejaké nápady, ako môžem získať ovládací prvok pivotu na obnovenie? - Vďaka
odpovede:
0 pre odpoveď č. 1Len som urobil rýchly test, väzbové práce sú v poriadku:
<controls:Pivot Title="MY APPLICATION" ItemsSource="{Binding Items}">
<controls:Pivot.HeaderTemplate>
<DataTemplate>
<TextBlock Text="{Binding LineOne}" />
</DataTemplate>
</controls:Pivot.HeaderTemplate>
<controls:Pivot.ItemTemplate>
<DataTemplate>
<Grid>
<Button Content="Update" Click="Button_Click" />
</Grid>
</DataTemplate>
</controls:Pivot.ItemTemplate>
</controls:Pivot>
A v C #
private void Button_Click(object sender, RoutedEventArgs e)
{
App.ViewModel.Items.Clear();
App.ViewModel.Items.Add(new ItemViewModel() { LineOne = "foo" });
App.ViewModel.Items.Add(new ItemViewModel() { LineOne = "bar" });
App.ViewModel.Items.Add(new ItemViewModel() { LineOne = "baz" });
}
Takže jasne robíte niečo veľmi zlé. Pošlite svoj kód a my sa pozrieme.
aktualizovať
Názov Viazanie tiež funguje
XAML
<controls:Pivot Title="{Binding Title}">
<controls:PivotItem Header="first">
<Grid>
<Button Click="Button_Click" Content="OK!" />
</Grid>
</controls:PivotItem>
</controls:Pivot>
C #:
private void Button_Click(object sender, RoutedEventArgs e)
{
Title = "foobar!";
PropertyChanged(this, new PropertyChangedEventArgs("Title"));
}