Я пытаюсь изменить источник данных дочернего элемента (в данном случае пользовательский элемент управления) Pivot, когда происходит изменение выбранного индекса. Мой Pivot XAML выглядит следующим образом
<Pivot x:Name="PivotItemsContainer" ItemsSource="{x:Bind viewModel.headerElement, Mode=OneWay}" SelectionChanged="Pivot_SelectionChanged" >
<Pivot.HeaderTemplate>
<DataTemplate x:DataType="models:HeaderUIModel">
<TextBlock Text="{Binding Name, Mode=OneWay}"/>
</DataTemplate>
</Pivot.HeaderTemplate>
<Pivot.ItemTemplate>
<DataTemplate>
<local1:AddressInfoControl></local1:AddressInfoControl>
</DataTemplate>
</Pivot.ItemTemplate>
</Pivot>
И при выбранном изменении индекса
private void Pivot_SelectionChanged(object sender, SelectionChangedEventArgs e)
{
AddressInfoControl aic = new AddressInfoControl();
switch (PivotItemsContainer.SelectedIndex)
{
case 0:
aic.Numbers = 0;
break;
case 1:
aic.Numbers = 1;
break;
default:
// code block
break;
}
}
Мой код контроля пользователя
AddressInfoMock aim = new AddressInfoMock();
private int _numbers;
public int Numbers
{
set
{
_numbers = value;
//when the numbers be changed
if (Numbers == 0)
{
AddressContainer.DataContext = aim.GetRightBoxDetails();
}
else
{
AddressContainer.DataContext = aim.GetLeftBoxDetails();
}
}
get
{
return _numbers;
}
}
public AddressInfoControl()
{
InitializeComponent();
if (Numbers == 0)
{
AddressContainer.DataContext = aim.GetRightBoxDetails();
}
else
{
AddressContainer.DataContext = aim.GetLeftBoxDetails();
}
}
}
Этот код всегда принимает числа как 0
при выбранном изменении индекса. Я считаю, что это происходит из-за InitializeComponent();
. Как я могу сделать эту работу. Так что когда выбранный индекс равен 0, я получаю данные правого ящика, а когда он равен 1, я получаю данные левого ящика?