В моем окне есть список WPF. В событии загрузки окна я создаю список (объектов) и добавляю несколько элементов. При запуске или отладке приложения я вижу элементы. Если я добавляю 1 элемент в список, я правильно вижу только 1 элемент. Если я добавляю 3 или более элементов, я правильно вижу 3 или более элементов. Если я добавлю только 2 элемента, я увижу только 1 элемент. Почему?
Вот мой код WPF
<Window x:Class="Cacatua.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:Cacatua;assembly=" >
<Grid>
<ListBox Name="lbSearch" ItemsSource="{Binding}" />
</Grid>
</Window>
А вот мой код программной части (та же сборка в пространстве имен Cacatua):
Private myLstSearch As List(Of Object)
Private Sub Window_Loaded(sender As System.Object, e As System.Windows.RoutedEventArgs) Handles MyBase.Loaded
myLstSearch = New List(Of Object)
lbSearch.ItemsSource = myLstSearch
Dim myMedia1 as Media1
myMedia1 = New Media1("IdMedia1-A")
myLstSearch.Add(myMedia1)
myMedia1 = New Media1("IdMedia1-B")
myLstSearch.Add(myMedia1)
End Sub
где Media1 - простой класс, содержащий строку
Public Class Media1
Private myIdTitolo As String
Public ReadOnly Property IDTitolo As String
Get
Return (myIdTitolo)
End Get
End Property
Public Sub New(str As String)
myIdTitolo = str
End Sub
End Class
С помощью этого кода я бы увидел список с этим выводом (нет таблички с данными): Cacatua.Media1 Cacatua.Media1
но вижу только Cacatua.Media1
Думаю, это ошибка. Но я первый с этой проблемой?
ItemsSource
после того, как заполните список, и посмотрите, имеет ли это значение. Кроме того, вам не нужно одновременно связывать свойствоItemsSource
в XAML и устанавливать его в коде программной части. Используйте только одно или другое :) - person Rachel   schedule 29.07.2014