【问题标题】:InvalidCastException on XAML FlipView ControlXAML FlipView 控件上的 InvalidCastException
【发布时间】:2014-11-10 12:43:11
【问题描述】:

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

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

TextBox textbox = flipView.SelectedItem as TextBox;

这是为什么呢? FlipViewItem 是 TextBox,我将其转换为 TextBox。如果我不投,无论如何我都会得到一个例外。那么有什么关系呢?如何从我的FlipViewItem 中获取TextBox?

如果有帮助,这是我的 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>

【问题讨论】:

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


    【解决方案1】:

    通常,您的 SelectedItem 是您来自 ItemSource 的项目。在您的情况下,它应该是 secret 项目。

    没有用flipview尝试过,但我说的是datagrid和其他容器,比如datagrid。

    【讨论】:

    • 是的。但是我需要对 secret 所在的 TextBox 进行更改,那么为什么我不能从 Flipview 控件中的项目中获取文本框呢?太奇怪了。每个 Flipview 项目都有一个文本框,其中 Text 属性绑定到一个集合我可以从 Flipview 获取集合项目,但为什么我不能获取文本框?我也需要文本框。
    • 也许你可以试试flipView.ContainerFromElement(flipView.SelectedItem ),但我不知道flipView是否有这个方法(它来自数据网格)。
    猜你喜欢
    • 2013-07-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-21
    • 1970-01-01
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    相关资源
    最近更新 更多