我有一個用戶控件,當用戶從列表框中選擇一個項目時,彈出窗口顯示另一個用戶控件。 父級初始化時,所有的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