【问题标题】:Setting Listbox Item Name Using Style使用样式设置列表框项目名称
【发布时间】:2014-06-20 07:00:06
【问题描述】:
<phone:PhoneApplicationPage.ApplicationBar>
    <shell:ApplicationBar Mode="Minimized">
        <shell:ApplicationBar.MenuItems>
            <shell:ApplicationBarMenuItem x:Name="copyQuote" Text="Copy Quote" Click="copyText"/>
            <shell:ApplicationBarMenuItem x:Name="deleteAllFavs" Text="Delete All" Click="delete_All_Favs"/>
            <shell:ApplicationBarMenuItem x:Name="rateAndReview" Text="Rate and Review" Click="rateApp"/>
            <shell:ApplicationBarMenuItem x:Name="suggestions" Text="suggestions" Click="emailSuggestion"/>
        </shell:ApplicationBar.MenuItems>
        <shell:ApplicationBarIconButton x:Name="message" IconUri="/icons/appbar.feature.email.rest.png" Text="message" Click="message_favourite"/>
        <shell:ApplicationBarIconButton x:Name="share" IconUri="/icons/appbar.message.send.png" Text="share" Click="share_favorite"/>
        <shell:ApplicationBarIconButton x:Name="deleteFav" IconUri="/icons/appbar.delete.rest.png" Text="delete" Click="delete_favorite"/>
    </shell:ApplicationBar>
</phone:PhoneApplicationPage.ApplicationBar>

<!--LayoutRoot is the root grid where all page content is placed-->
<Grid x:Name="LayoutRoot" Background="Transparent">
    <Grid.RowDefinitions>
        <RowDefinition Height="90"/>
        <RowDefinition Height="Auto"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <!--TitlePanel contains the name of the application and page title-->
    <!--ContentPanel - place additional content here-->
    <Grid x:Name="ContentPanel" Grid.Row="2" Margin="12,0,12,0">
        <ListBox  Height="Auto" HorizontalAlignment="Left" Margin="-12,0,0,0" x:Name="favShaListBox" VerticalAlignment="Top" Width="Auto" FontFamily="Yu Gothic" FontWeight="Bold" RenderTransformOrigin="0.5,0.5" HorizontalContentAlignment="Stretch" ItemsSource="{Binding}">
            <ListBox.ItemTemplate>
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="{Binding Content}" TextWrapping="Wrap" FontSize="24" FontFamily="Yu Gothic" Width="480" />
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
            <ListBox.ItemContainerStyle>
                <Style TargetType="ListBoxItem">
                    <Setter Property="Name" Value="{Binding QuoteKey}"/>
                </Style>
            </ListBox.ItemContainerStyle>
        </ListBox>
    </Grid>

当我尝试加载此 xaml 页面时,它会引发一个名为 XAML parseException 的异常,该异常指向用于设置上述列表框样式的 Setter 中的属性“Value”。

$exception {"Set property '' 抛出异常。[Line: 50 Position: 49]"} System.Exception {System.Windows.Markup.XamlParseException}

它指向一个应用程序栏项目名称“copyQuote”,正如我明确指出的那样,该样式仅针对 ListboxItem。

【问题讨论】:

    标签: xaml windows-phone-7 windows-phone-8


    【解决方案1】:

    我认为设置ListboxItem的属性有问题。

    <ListBox.ItemContainerStyle>
                    <Style TargetType="ListBoxItem">
                        <Setter Property="Name" Value="{Binding QuoteKey}"/>
                    </Style>
    </ListBox.ItemContainerStyle>
    

    删除此Setter 后尝试。

    【讨论】:

    • 但我需要 Setter 来设置 ListBoxItem 的名称。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-14
    • 2014-09-01
    • 1970-01-01
    • 2013-02-24
    • 2013-07-08
    • 1970-01-01
    相关资源
    最近更新 更多