Pivot SelectedItem属性导致Windows UWP崩溃

时间:2017-05-18 11:19:24

标签: c# xaml uwp

如下面的代码所示,我使用了一个数据控件来显示数据,并且在选择已更改的数据控件时,我调用了一个方法,以便它动态选择标题值并显示数据。

XAML代码:

<Pivot x:Name="pivot" SelectionChanged="BindData">
      <PivotItem Header="Test1"></PivotItem>
      <PivotItem Header="Test2"></PivotItem>
</Pivot>

C#代码:

private async void BindData(object sender, SelectionChangedEventArgs e)
{
     dynamic selectedValue = pivot.SelectedItem;
     if (selectedValue != null)
    {
                    PropertyInfo pi = selectedValue.GetType().GetProperty("Header");
                    string sectionName = (String)(pi.GetValue(selectedValue, null));
    }
}

代码在调试模式下无缝正常工作,但在发布模式下导致崩溃。 这可能是什么问题?任何解决方法?或者我错过的任何设置? 请帮我解决这个问题。 谢谢。

1 个答案:

答案 0 :(得分:4)

我不明白为什么你不需要使用反射?

PivotItem类公开了Header属性,因此您只需使用:

private void BindData(object sender, SelectionChangedEventArgs e)
{
    var selectedItem = pivot.SelectedItem as PivotItem;    // Gets the selected item and casts it from an object to a PivotItem.
    var sectionName = selectedItem?.Header as string;      // "selectedItem?" - makes sure selectedItem isn't null. ".Header as string" - gets the Header property and casts it from an object to  a string.
}

在发布模式下应该可以正常工作。