UWP, C #.У меня есть Pivot
контроль.Я пытаюсь добавить PivotItem
-обработанный объект в коллекцию Items.Выдает COMException
:
Установленные компоненты не обнаружены.
Невозможно применить стиль с TargetType 'Windows.UI.Xaml.Controls.PivotItem' к объекту типа'Windows.UI.Xaml.Controls.ContentControl'.
Значение HRESULT составляет 0x800f1000, если это имеет значение.
Воспроизводится на чистом примере.Это работает:
MyPivot.Items.Insert(1, new PivotItem() { Header = "Boo" });
И это исключения:
MyPivot.Items.Insert(1, new BooItem() { Header = "Boo" });
Где BooItem
определяется как
public class BooItem : PivotItem
{
public BooItem(){}
}
Если указано через XAML, PivotItem
классы работают в Pivot
.Все остальные мои элементы в приложении такие же.
Вся кодовая база - это порт из Windows Phone Silverlight (для WP8.0), он работал там.Теперь UWP не совсем то же самое, но, тем не менее, вы ожидаете ...
РЕДАКТИРОВАТЬ: вы можете добавить элемент как невидимый.Заголовок все равно появится, но его содержимое будет невидимым.Попытка сделать его видимым вызывает то же исключение.
В документах Pivot
есть интересная строка:
Любой элемент, добавляемый в Pivot, который явно не является PivotItem,неявно завернутый в PivotItem.
Имеют ли объекты, которые получают PivotItem
, количество?
EDIT2: воспроизводятся в пустом проекте.На главной странице XAML идет:
<Page
x:Class="UWTest.MainPage"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="using:UWTest"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
mc:Ignorable="d">
<Pivot x:Name="ThePivot">
<PivotItem Header="Foo">
<StackPanel>
<Button Content="Go" Click="OnGo"/>
</StackPanel>
</PivotItem>
</Pivot>
</Page>
Код идет:
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
namespace UWTest
{
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
private void OnGo(object sender, RoutedEventArgs e)
{
ThePivot.Items.Insert(1, new BooItem() { Header = "Boo" });
}
}
public class BooItem : PivotItem
{
public BooItem() { }
}
}
Visual Studio 2015 обновление 3, целевая версия 14393, минимальная версия такая же.
РЕДАКТИРОВАТЬ: воспроизведено на другой машине.Visual Studio 2015, новый проект Unversal для Windows C #.Windows 10 Pro, версия 1803 (сборка 17134,648).