如下面的代码所示,我使用了一个数据控件来显示数据,并且在选择已更改的数据控件时,我调用了一个方法,以便它动态选择标题值并显示数据。
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));
}
}
代码在调试模式下无缝正常工作,但在发布模式下导致崩溃。 这可能是什么问题?任何解决方法?或者我错过的任何设置? 请帮我解决这个问题。 谢谢。
答案 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.
}
在发布模式下应该可以正常工作。