У меня есть объект, который заполняющий ListBox и я хочу, когда я щелкните элемент, чтобы написать его содержимое в RichTextBox так:DataBind ListBox SelectedItem в RichTextBox
Название: бла-бла
Исполнитель: бла бла бла
Жанр: ...
Тип: ...
Это объект:
public class Multimedia : INotifyPropertyChanged {
public enum MediaType {
CD,
DVD
};
public string _title { get; private set; }
public string _artist { get; private set; }
public string _genre { get; private set; }
public MediaType _type { get; private set; }
public event PropertyChangedEventHandler PropertyChanged;
}
Это коллекция объектов мультимедиа:
public class MultiMediaList : ObservableCollection<Multimedia> {
public MultiMediaList() {
}
}
А класс MainWindows
Multimedia m1 = new Multimedia("Play", "Moby", "Techno", Multimedia.MediaType.CD);
Multimedia m2 = new Multimedia("18", "Moby", "Techno", Multimedia.MediaType.CD);
Multimedia m3 = new Multimedia("The Inevitable End", "Royksopp", "Electro", Multimedia.MediaType.CD);
multimediaList.Add(m1);
multimediaList.Add(m2);
multimediaList.Add(m3);
List<Multimedia> list = new List<Multimedia>();
list.Add(m1);
list.Add(m2);
list.Add(m3);
DataContext = multimediaList;
InitializeComponent();
listBox1.ItemsSource = multimediaList;
И XAML:
<Grid Name="grid1">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="100" />
<ColumnDefinition Width="5" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<ListBox Grid.Column="0" Name="listBox1">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="0,2">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="100" />
</Grid.ColumnDefinitions>
<TextBlock Text="{Binding _artist}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<GridSplitter Name="gridSplitter1" Margin="0" Width="5" Grid.Column="1" HorizontalAlignment="Left" />
<RichTextBox Grid.Column="2" Name="richTextBox1" DataContext="{Binding ElementName=listBox1, Path=SelectedItem.Name }"/>
</Grid>
Почему вы хотите использовать RichTextBox? –