데이터베이스에서 데이터를 가져 오는 ObservableCollection에 바인딩 된 목록 상자가있는 WPF 응용 프로그램이 있습니다. DispatcherTimer를 사용하여 매분마다 ListBox 데이터를 새로 고치려고합니다.ListBox ObservableCollection duplicating
Dim dispatcherTimer As DispatcherTimer = New System.Windows.Threading.DispatcherTimer
AddHandler dispatcherTimer.Tick, AddressOf getRoomMeetingDetails
dispatcherTimer.Interval = New TimeSpan(0, 2, 0)
dispatcherTimer.Start()
다음과 같이 getRoomMeetingDetails 메서드를 호출합니다.
Public Sub getRoomMeetingDetails()
If Not My.Settings.rbConn = Nothing And _
Not gl_rmName = Nothing Then
Dim sqlConn As New SqlConnection(My.Settings.rbConn)
Dim sqlquery As String = "SELECT *" & _
"FROM table " & _
Dim sqlCmd As New SqlCommand(sqlquery, sqlConn)
sqlConn.Open()
Dim dr As SqlDataReader
dr = sqlCmd.ExecuteReader
While dr.Read
roomMeetingList.Add(New meetingDetails() With {.eMeetingId = dr.Item("dId")})
End While
End If
End Sub
내가 ObservableCollections에 아주 새로운 오전이 사용하는 가장 좋은 방법은 아닙니다 그래서 만약의 MSDN 예제 떨어져 내 코드를 모델링하기 위해 최선을 노력했다 (다음과 같이 나는 다음 컬렉션 내 두 개의 클래스가 내가 달성하기 위해 노력하고, 또는 쉽게 수행 할 수 있습니다 무엇을 달성하기 위해, 나는 때문에이라고 생각되는 DispatcherTimer이, 매 분마다 호출되는 목록 상자 데이터가 중복 될 때
Public Class MeetingList
Inherits ObservableCollection(Of meetingDetails)
Private Shared list As New MeetingList
Public Shared Function getList() As MeetingList
Return list
End Function
Private Sub New()
AddItems()
End Sub
Public Shared Sub reset(ByVal rmName As String)
list.ClearItems()
list.AddItems()
End Sub
Private Sub AddItems()
End Sub
End Class
Public Class meetingDetails
Implements INotifyPropertyChanged
Public Sub New()
End Sub
Public Property eID() As String
Get
Return _eID
End Get
Set(ByVal value As String)
_eID = value
OnPropertyChanged("eID")
End Set
End Property
Private _eID As String
Public Event PropertyChanged As PropertyChangedEventHandler _
Implements INotifyPropertyChanged.PropertyChanged
End Class
은 무엇 일어나고있는 것은) 알려 주시기 바랍니다 getRoomMeetingDetails 메소드는 모든 틱에 모든 SQL 결과를 추가합니다. 테이블에서 새 데이터 또는 데이터 변경만으로 ListBox를 새로 고치는 방법은 무엇입니까?
내가 잘못 가고있는 부분을 알아 내려고 노력하고 있으며,이를 위해 추가/제거해야 할 부분이 있습니다.
세부 사항이있는 경우 알려주세요. 알려주세요.
매트
쿨이 (작동하도록 뭔가 합리적으로 잘되고있다 C# 변환, 그냥 그것을 작성하는 어떤 좋은). 자, MeetingList 클래스에 추가할까요? – Lima
'getRoomMeetingDetails'하위 – Sascha
위대한 덕분에 훨씬 쉽게됩니다. 악을 행하고 그것이 어떻게 작동하는지보십시오. – Lima