У меня есть классКак связать ObservableCollection с ListBox?
public class Clip
{
public string ID { get; set; }
public string Name { get; set; }
public int? Duration { get; set; }
}
И ObservableCollection
public ObservableCollection<Clip> _clipsFound;
public ObservableCollection<Clip> collection
{
get { return _clipsFound; }
set
{
_clipsFound = value;
OnPropertyChanged();
}
}
OnPropertyChanged()
вызывается, когда я
_clipsFound = collection
Я хочу связывания данных из коллекции в ListBox с тремя столбцами: ID, имя, Продолжительность
Initialize
ID = id;
collection = new ObservableCollection<Clip>();
_clipsFound = collection;
_clipsFound.Clear();
ICollection<Clip> ClipF = await Service.GetClips(ID);
ICollection<Clip> Clipcol = ClipF;
collection = new ObservableCollection<Clip>(Clipcol);
Я пытаюсь сделать это, но он не работает
<ListBox Grid.Row="2" ItemsSource="{Binding collection}" BorderBrush="Transparent" >
<ListBox.ItemTemplate>
<DataTemplate DataType="ui:Clip">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0"
Text="{Binding Title}"
VerticalAlignment="Center"
HorizontalAlignment="Left"
TextTrimming="CharacterEllipsis"
Foreground="#FF4F4F4F"
FontSize="12"
Margin="55 0 0 0"/>
<TextBlock Grid.Column="1"
Margin="0 0 45 0"
Text="{Binding Duration}"
VerticalAlignment="Center"
HorizontalAlignment="Right"
FontSize="11"
Foreground="#FF4F4F4F"/>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
Что я сделал не так?
Пожалуйста, можете быть более конкретным, чем «это не работает». Что не работает? Вы ничего не получаете? Ошибки привязки в окне вывода отладчика? Что-то другое? – ChrisF
Ваша «продолжительность» работает? если да - это ваша коллекция? то, как вы написали это в своем вопросе, предполагает, что это частная собственность, и если я правильно помню, это может вызвать проблемы. –
Я только что заметил, что вы привязываетесь к «Title», но в классе 'Clip' нет свойства Title. – ChrisF