Я пытаюсь сделать «TreeView-подобный» дисплей в моем приложении Windows Phone (7.1).
Для этого я использую «ExpanderView» в Silverlight Toolkit .
Итак, в основном моя программа добавляет ExpanderViews внутри ExpanderViews для создания дерева.
Все будет плавно, пока элемент не выйдет за пределы экрана по горизонтали, где он выдаст мне исключение «Параметр неверен».в строке «Debugger.Break ()» в следующем коде:
// Code to execute on Unhandled Exceptions
private void Application_UnhandledException(object sender, ApplicationUnhandledExceptionEventArgs e)
{
if (System.Diagnostics.Debugger.IsAttached)
{
// An unhandled exception has occurred; break into the debugger
System.Diagnostics.Debugger.Break();
}
}
В App.xaml.cs.
Я предполагаю, что элемент не инициализируется / загружается неправильно,как у меня было это исключение ранее с тем же элементом, где я добавлял элементы без полной загрузки родительского элемента.
Это мой XAML:
<Grid x:Name="LayoutRoot" Background="Transparent">
<Grid x:Name="ContentPanel" Margin="12,0,12,0"/>
</Grid>
<phone:PhoneApplicationPage.ApplicationBar>
<shell:ApplicationBar IsVisible="True" IsMenuEnabled="True">
<shell:ApplicationBarIconButton IconUri="/Images/Plus.png" Text="Add" Click="ApplicationBarIconButtonClick"/>
</shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>
И это код позади:
public MainPage()
{
InitializeComponent();
_lastView = new ExpanderView { Header = "Header", IsExpanded = true };
ContentPanel.Children.Add(_lastView);
}
private ExpanderView _lastView;
private void ApplicationBarIconButtonClick(object sender, System.EventArgs e)
{
var newItem = new ExpanderView {Header = "Header", IsExpanded = true};
_lastView.Items.Add(newItem);
_lastView = newItem;
}
В следующий раз, когда я нажимаю кнопку панели приложения (когда следующий элемент превышает экран по горизонтали), это дает мне исключение: