XAML FlipView控件上的InvalidCastException

时间:2014-11-10 12:43:11

标签: c# xaml windows-runtime windows-store-apps microsoft-metro

我的商店应用中有一个FlipView控件,我的FlipViewItem被绑定到一个ObservableCollection。

每个FlipViewItem都是TextBox。在运行时,我尝试这个时得到InvalidCastException

TextBox textbox = flipView.SelectedItem as TextBox;

为什么? FlipViewItemTextBox,我将其投放到TextBox。如果我不投,我无论如何都会得到一个例外。那是什么交易?如何从TextBox中获得FlipViewItem

如果有帮助,这是我的XAML:

<FlipView x:Name="flipper"
          ItemsSource="{Binding secret}"
          HorizontalAlignment="Stretch"
          VerticalAlignment="Stretch"
          Background="{x:Null}"
          BorderBrush="{x:Null}"
          BorderThickness="0"

          SelectionChanged="flipper_SelectionChanged"
          Loaded="flipper_Loaded">
    <FlipView.ItemTemplate>
        <DataTemplate>
            <TextBox x:Name="flipViewItemTextBox"
                     Text="{Binding Content, Mode=TwoWay, 
                     UpdateSourceTrigger=PropertyChanged}"
                     IsSpellCheckEnabled="True"
                     IsDoubleTapEnabled="True"
                     IsColorFontEnabled="True"
                     IsRightTapEnabled="True"
                     IsTapEnabled="True"
                     IsTextPredictionEnabled="True"
                     Background="{x:Null}"
                     BorderBrush="{x:Null}"
                     BorderThickness="0"
                     TextWrapping="Wrap"
                     AcceptsReturn="True"
                     AllowDrop="True"
                     ScrollViewer.VerticalScrollBarVisibility="Auto"
                     ScrollViewer.VerticalScrollMode="Auto"

                     TextChanged="flipViewItemTextBox_TextChanged"
                     />
        </DataTemplate>
    </FlipView.ItemTemplate>
</FlipView>

1 个答案:

答案 0 :(得分:0)

Normaly,您的SelectedItem是ItemSource中的项目。在您的情况下,它应该是secret项。

没有尝试使用flipview,但我会谈论datagrid和其他像datagrid这样的容器。