Windows Phone 7 - проблема с классом ListViewItem - PullRequest
0 голосов
/ 04 сентября 2010

У меня есть приложение, которое было разработано с использованием инструментов CTP для разработчиков WP7. Теперь я пытаюсь запустить то же приложение, но на инструментах бета-тестирования WP7.

Я внес все изменения, необходимые для вышеуказанного преобразования, какза Примечания к выпуску Microsoft

В нем упоминается, что ListView и ListViewItem классы удалены из Microsoft.Phone.Controls namespace.

Ниже приведено (измененное) пространство имен XML согласно примечаниям к выпуску.

xmlns:mpc="clr-namespace:Microsoft.Phone.Controls;assembly=Microsoft.Phone"

И у меня есть следующая строка, в которой используется ListView.

<mpc:ListViewItem Layout="TextAndDetailsWithIcon" Text="{Binding Title.Text}" Details="{Binding Title.Text}" Style="{StaticResource PhoneListBoxItemLayout}"/>

Так (очевидно) это дает мне ошибку по поводу пространства имен.Как это исправить?


UPDATE1 -

Я определил макет нашего элемента списка непосредственно в DataTemplate как

<TextBlock x:Name="ItemText" Text="{Binding Title.Text}" Margin="-2,-13,0,0" Style="{StaticResource PhoneTextSubtleStyle}"/>

Теперь я получаю сообщение об ошибке следующей строки, которая находится внутри какого-то автоматически сгенерированного файла App.g.cs

System.Windows.Application.LoadComponent(this, new System.Uri("/RssReader;component/App.xaml", System.UriKind.Relative));

И ошибка

Invalid attribute value mpc:ListViewItem for property TargetType

В чем проблема сейчас?

(Примечание: я новичок в Silverlight, поэтому, пожалуйста, имейте в виду)

Ответы [ 2 ]

5 голосов
/ 04 сентября 2010

Похоже, что они удалили этот класс по этой ссылке .

Что ж, предопределенных шаблонов ListViewItem больше нет, поэтому вместо этого мы определяем макет нашего элемента списка непосредственно в DataTemplate следующим образом:

    <ListBox x:Name="MainListBox" ItemsSource="{Binding Items}" SelectionChanged="MainListBox_SelectionChanged">
        <ListBox.ItemTemplate>
            <DataTemplate>
                <StackPanel x:Name="DataTemplateStackPanel" Orientation="Horizontal">
                    <Image x:Name="ItemImage" Source="/WindowsPhoneListApplication1;component/Images/ArrowImg.png" Height="43" Width="43" VerticalAlignment="Top" Margin="10,0,20,0"/>
                    <StackPanel>
                        <TextBlock x:Name="ItemText" Text="{Binding LineOne}" Margin="-2,-13,0,0" Style="{StaticResource PhoneTextExtraLargeStyle}"/>
                        <TextBlock x:Name="DetailsText" Text="{Binding LineTwo}" Margin="0,-6,0,3" Style="{StaticResource PhoneTextSubtleStyle}"/>
                    </StackPanel>
                </StackPanel>
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>

Когда вы создаете приложение WindowsPhoneListApplication по умолчанию, оно также выполняет этот макет, если вам нужен полный пример.

0 голосов
/ 03 июня 2011

Фактически вам не нужно определять ItemsSource="{Binding Items}"

в

<ListBox x:Name="MainListBox" SelectionChanged="MainListBox_SelectionChanged">

...