【发布时间】:2015-10-23 05:32:40
【问题描述】:
我有一个填充 ListBox 的对象,我希望当我单击一个项目时将其内容写入 RichTextBox,如下所示:
标题:bla bla
艺术家:bla bla bla
类型:...
类型:...
这是对象:
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?