PRISM-MVVM, ItemsControl problem with View injection

爱⌒轻易说出口 提交于 2020-01-15 14:10:18

问题


I need to display multiple instances of a basketDetailsView.xaml within a region placed in basketView.xaml, but I'm getting the following errormessage when i debug my code:

"An exception occurred while creating a region with name 'basketRegion'. The exception was: System.InvalidOperationException: ItemsControl's ItemsSource property is not empty. This control is being associated with a region, but the control is already bound to something else. If you did not explicitly set the control's ItemSource property, this exception may be caused by a change in the value of the inherited RegionManager attached property"

The basketView XAML contains an ItemsControl tag defined like this

<ItemsControl x:Name="basketItemsControl"cal:RegionManager.RegionName="basketRegion"/>

The view also has a listbox where I can uncheck/check the BasketDetailsViews I want to look at:

<ListBox x:Name="basketListBox" ItemsSource="{Binding basket}"  MinWidth="200">
<ListBox.ItemTemplate>
<DataTemplate>
  <CheckBox commands:Checked1.Command="{Binding DataContext.CheckCommand,ElementName=basketListBox}" Content="{Binding basketName}" ></CheckBox>
</DataTemplate>       
</ListBox.ItemTemplate>
</ListBox

When I run without debugging it executes fine and I can pop in/out the different basketDetailsViews, but when debugging the above mentioned error shows. What Am i doing wrong?

EDIT:

Public Sub AddCageDetailsView(ByVal BasketName As String)
Dim basketRegion = _RegionManager.Regions("basketRegion")
Dim view = _Container.Resolve(Of basketDetailsView)()
Dim viewmodel = _Container.Resolve(Of basketDetailsViewModel)()

view.ApplyModel(viewmodel)
basketRegion.Add(view)
End Sub

So basketRegion is the region in my ItemsControl as specified above. This region is supposed to hold my basketDetailsViews..

来源:https://stackoverflow.com/questions/4022303/prism-mvvm-itemscontrol-problem-with-view-injection

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!