Warum ist dieser XAML-Code immer den Fehler: die Items-Auflistung muss leer sein vor der Verwendung von "ItemsSource"
Kann jemand zaubern aus diesem code, warum die ItemsSource-Linie bekommen würde eine
Items-Auflistung muss leer sein, bevor
Verwendung von "ItemsSource".
Fehler? Die meisten Lösungen die ich gefunden habe, zeigen, ill-komponiert, XAML, z.B. ein zusätzliches element etc. was ich nicht zu haben scheinen. Wenn ich
ItemsSource="{Binding Kunden}"
es läuft ohne Fehler (aber natürlich nicht angezeigt, die Liste meiner Kunden).
Kunden definiert, so im ViewModel und hat 3 CustomerViewModels:
Customer[] customers = Customer.GetCustomers();
IEnumerable<CustomerViewModel> customersViewModels = customers.Select(c => new CustomerViewModel(c));
this.Customers = new ReadOnlyCollection<CustomerViewModel>(customersViewModels.ToArray());
Keine Vorschläge, wo Sie suchen?
<UserControl x:Class="TestCommandSink123.View.CustomersView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:TestCommandSink123"
xmlns:view="clr-namespace:TestCommandSink123.View"
xmlns:vm="clr-namespace:TestCommandSink123.ViewModel"
xmlns:sink="clr-namespace:TestCommandSink123.CommandSinkClasses"
sink:CommandSinkBinding.CommandSink="{Binding}"
>
<UserControl.CommandBindings>
<sink:CommandSinkBinding Command="vm:CustomersViewModel.CloseAllCustomersCommand"/>
</UserControl.CommandBindings>
<DockPanel>
<ItemsControl
DockPanel.Dock="Bottom" ItemsSource="{Binding Customers}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<view:CustomerView/>
</DataTemplate>
</ItemsControl.ItemTemplate>
<Button
Command="vm:CustomersViewModel.CloseAllCustomersCommand"
Content="Close All"
Margin="0,0,0,8"
/>
</ItemsControl>
</DockPanel>
</UserControl>
ANTWORT:
Hab ich ja mit fehlerhaften XAML, nur übersehen Sie, sollte die Schaltfläche, die außerhalb des ItemsControl:
<ItemsControl
DockPanel.Dock="Bottom" ItemsSource="{Binding Customers}">
<ItemsControl.ItemTemplate>
<DataTemplate>
<view:CustomerView/>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
<Button
Command="vm:CustomersViewModel.CloseAllCustomersCommand"
Content="Close All"
Margin="0,0,0,8"
/>
einfach nur zu erwähnen fehlerhaften XAML mir geholfen
InformationsquelleAutor Edward Tanguay | 2009-04-22
Du musst angemeldet sein, um einen Kommentar abzugeben.
Sie versuchen, die ItemsSource von ItemsControl aber du hast ja schon Kinder. Welche von diesen beiden sollte gelten? Die Taste, die Sie ins innere des ItemsControl oder die Kollektion Sie werden übergeben ihn als ItemsSource? Die Fehlermeldung ist absolut vernünftig.
Müssten Sie entweder die entfernen-Taste, die von ItemsControl oder entfernen Sie das Attribut ItemsSource. Sie können keine Elemente einfügen und festlegen ItemsSource an der gleichen Zeit.
<ComboBox ItemsSource="{Binding Customers}">This makes it fail</ComboBox>
.InformationsquelleAutor Joey
Ihre ItemsControl eine Taste hat. Da es bereits ein Element in das ItemsControl, ist es nicht lassen Sie die ItemsSource-Eigenschaft.
Verschieben Sie die Schaltfläche Erklärung unten unter der
</ItemsControl>
schließenden tag.InformationsquelleAutor Matt Hamilton
Haben Sie sich diese Frage? Es scheint, wie die Antwort auf Ihr problem.
"Die Items-Auflistung muss leer sein vor der Verwendung von "ItemsSource"."
InformationsquelleAutor Razzie