“Набор объектов должен быть пустым перед использованием ItemsSource”.

Замените ваш rounded_edittext.xml следующим кодом:

<layer-list xmlns:android="http://schemas.android.com/apk/res/android">
<item >
    <shape
        android:shape="rectangle">
        <solid android:color="@android:color/darker_gray" />
        <corners android:radius="27.5dp"/>
    </shape>
</item>
<item android:right="1dp" android:left="1dp" android:bottom="2dp">
    <shape
        android:shape="rectangle">
        <solid android:color="#FFFFFF"/>
        <corners
            android:radius="27.5dp"/>
        <stroke android:color="#66000000" android:width="0.5dp"/>
    </shape>
</item>

Также замените android:elevation="20dp" из EditText на android:elevation="4dp"

162
задан Grant - REINSTATE MONICA 24 July 2014 в 17:39
поделиться

4 ответа

Причина это конкретное исключение выдается, состоит в том, что к содержанию элемента относятся набор Объектов ListView. Таким образом, XAML инициализирует ListView с единственным local:ImageView в его наборе Объектов. Но при использовании ItemsControl необходимо использовать или свойство Items или свойство ItemsSource, Вы не можете использовать обоих одновременно. Следовательно, когда атрибут ItemsSource обрабатывается, исключение выдается.

Можно узнать, какое свойство к содержанию элемента будут относиться путем поиска ContentPropertyAttribute на классе. В этом случае это определило выше в иерархии классов на ItemsControl:

[ContentPropertyAttribute("Items")]

Намерение здесь состояло в том, что Представление ListView было установлено на local:ImageView, таким образом, фиксация должна явно указать на свойство, которое будет установлено.

Зафиксируйте XAML, и исключение уходит:

<ListView Name="ListViewImages"
          SelectionMode="Single"
          ItemsSource="{Binding}">
    <ListView.View>
        <local:ImageView />
    </ListView.View>
</ListView>

Это пропускало это <ListView.View> тег.

119
ответ дан Zack Peterson 23 November 2019 в 21:20
поделиться

Некоторое время у меня возникала та же ошибка в немного другом сценарии. У меня был

<wpftoolkit:DataGrid
    AutoGenerateColumns="False"
    ItemsSource="{Binding Path=Accounts}" >
    <wpftoolkit:DataGridTextColumn 
        Header="Account Name" 
        Binding="{Binding Path=AccountName}" />
</wpftoolkit:DataGrid>

, который я установил как

<wpftoolkit:DataGrid
    AutoGenerateColumns="False"
    ItemsSource="{Binding Path=Accounts}" >
    <wpftoolkit:DataGrid.Columns>
        <wpftoolkit:DataGridTextColumn 
            Header="Account Name" 
            Binding="{Binding Path=AccountName}" />
    </wpftoolkit:DataGrid.Columns>
</wpftoolkit:DataGrid>
178
ответ дан 23 November 2019 в 21:20
поделиться

Мне тоже на другом сценарии.

<ComboBox Cursor="Hand" DataContext="{Binding}"  
              FontSize="16" Height="27" ItemsSource="{Binding}" 
              Name="cbxDamnCombo" SelectedIndex="0" SelectedValuePath="MemberId">

        <DataTemplate>
            <TextBlock DataContext="{Binding}">
                <TextBlock.Text>
                  <MultiBinding StringFormat="{}{0} / {1}">
                    <Binding Path="MemberName"/>
                    <Binding Path="Phone"/>
                  </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
        </DataTemplate>

</ComboBox>

Теперь, когда вы в комплекте с отсутствующим тегом Control.itemTemplate , все попадает в нормальное:

<ComboBox Cursor="Hand" DataContext="{Binding}"  
              FontSize="16" Height="27" ItemsSource="{Binding}" 
              Name="cbxDamnCombo" SelectedIndex="0" SelectedValuePath="MemberId">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock DataContext="{Binding}">
                <TextBlock.Text>
                  <MultiBinding StringFormat="{}{0} / {1}">
                    <Binding Path="MemberName"/>
                    <Binding Path="Phone"/>
                  </MultiBinding>
                </TextBlock.Text>
            </TextBlock>
        </DataTemplate>
    <ComboBox.ItemTemplate>
</ComboBox>
39
ответ дан 23 November 2019 в 21:20
поделиться

В моем случае это была просто дополнительная StackPanel внутри ListView:

<ListView Name="_details" Margin="50,0,50,0">
            <StackPanel Orientation="Vertical">
                <StackPanel Orientation="Vertical">
                    <TextBlock Text="{Binding Location.LicenseName, StringFormat='Location: {0}'}"/>
                    <TextBlock Text="{Binding Ticket.Employee.s_name, StringFormat='Served by: {0}'}"/>
                    <TextBlock Text="{Binding Ticket.dt_create_time, StringFormat='Started at: {0}'}"/>
                    <Line StrokeThickness="2" Stroke="Gray" Stretch="Fill" Margin="0,5,0,5" />
                    <ItemsControl ItemsSource="{Binding Items}"/>
                </StackPanel>
            </StackPanel>
        </ListView>

Становится:

<ListView Name="_details" Margin="50,0,50,0">
                <StackPanel Orientation="Vertical">
                    <TextBlock Text="{Binding Location.LicenseName, StringFormat='Location: {0}'}"/>
                    <TextBlock Text="{Binding Ticket.Employee.s_name, StringFormat='Served by: {0}'}"/>
                    <TextBlock Text="{Binding Ticket.dt_create_time, StringFormat='Started at: {0}'}"/>
                    <Line StrokeThickness="2" Stroke="Gray" Stretch="Fill" Margin="0,5,0,5" />
                    <ItemsControl ItemsSource="{Binding Items}"/>
                </StackPanel>
        </ListView>

и все в порядке.

4
ответ дан 23 November 2019 в 21:20
поделиться
Другие вопросы по тегам:

Похожие вопросы: