Я работаю над программой на C # / WPF и создал пользовательский элемент управления, состоящий из двух текстовых полей (и сетки).
В моем главном окне есть список. Источником его элементов является коллекция моих упомянутых пользовательских элементов управления. Когда я заполняю ее и отлаживаю программу, она содержит 20 элементов, и все элементы содержат текст, как я хотел. Но после загрузки главного окна (и заполнения списка) в нем отображаются все элементы, но только у девяти из них есть текстовые поля с текстом. Другие имеют текстовые поля без текста.
В чем может быть причина этого?
Обновление: вот код.
Пользовательский контроль:
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="40" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBox x:Name="NumberColumn" x:FieldModifier="public" Text="{Binding LineNumber}"
Grid.Column="0" HorizontalAlignment="Right" />
<TextBox x:Name="TextColumn" x:FieldModifier="public" Text="{Binding Text}"
Grid.Column="1" HorizontalAlignment="Left" />
</Grid>
Заполнение списка:
string line;
Collection<CustomLine> lines = new Collection<CustomLine>();
StreamReader reader = new StreamReader(@"2008.sln");
while ((line = reader.ReadLine()) != null)
{
CustomLine myLine = new CustomLine(line, lines.Count + 1);
lines.Add(myLine);
}
this.leftListBox.ItemsSource = lines;
XAML списка:
<ListBox x:Name="leftListBox" Grid.Column="0" Margin="10"
MouseDown="leftListBox_MouseDown" SelectionChanged="leftListBox_SelectionChanged">
<ListBox.ItemTemplate>
<DataTemplate>
<UserControl>
<local:CustomLine />
</UserControl>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Если может использоваться другой фрагмент кода, я могу добавить его и позже.