我有一个用户控件,当用户从列表框中选择一个项目时,弹出窗口显示另一个用户控件。 父级初始化时,所有的usercontrols初始化。每当弹出弹出窗口弹出创建新的UserControl
<Popup x:Name="PopContactLogs" Width="670" StaysOpen="True" AllowsTransparency="True" PopupAnimation="Fade" PlacementTarget="{Binding ElementName=PageCustomerHome}" Placement="Center">
<Border CornerRadius="5" BorderBrush="DimGray" BorderThickness="2" Background="White">
<StackPanel>
<DockPanel Width="1180" Background="Gray">
<TextBlock Text="Customer Contact Logs" FontWeight="Bold" HorizontalAlignment="Center" />
<Button Name="cmdContactLogsClose" Content="X" Width="20" Foreground="Gainsboro" DockPanel.Dock="Right" />
</DockPanel>
<l:cCustomerContactLogFull x:Name="cCCLF" />
</StackPanel>
</Border>
</Popup>
后面的代码:
Private Sub lstContactLogs_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles lstContactLogs.MouseDoubleClick
cCCLF = New Tracks.cCustomerContactLogFull(CustomerID, sender.selecteditem)
PopContactLogs.IsOpen = True
End Sub
的问题是,在的ObservableCollection的数据永远不会从我查看第一个记录变化。我也试过
Private Sub lstContactLogs_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Input.MouseButtonEventArgs) Handles lstContactLogs.MouseDoubleClick
cCCLF.CustomerID = CustomerID
cCCLF.ContactLog = sender.selecteditem
PopContactLogs.IsOpen = True
End Sub
它只是保留原始数据在那里。 我真的很想每次重新创建它,每次都基本上有一个新的web部件。
不确定你的意思。你是说当你改变列表框中的选定项目时,弹出窗口内的UserControl没有改变? – 2011-07-07 17:49:22
好吧,挺好的。 usercontrol有一个可观察的集合,在初始化控件时被填充。当您单击第二项时,它不会重新初始化控件。当我改变它来填充OnLoad事件时,我得到了一些不一致的错误,有时它会正常工作,有时它不会。所以我希望丢弃它,并且每次都重新初始化它。 – AndyD273 2011-07-07 18:38:25
好吧,我想我现在有一个解决方案,并发布了一个答案。 – 2011-07-07 18:59:38