Добрый день, возникли вопрос касательно WPF, а именно:
у меня есть объект вида:
| Код | using System.Drawing;
namespace WpfApplication1 { public class Record { public string Key; public Color Value; public Record(string key, Color value) { Key = key; Value = value; } } }
|
и его коллекция, т.е.:
| Код | public class RecordCollection:List<Record> { }
|
так же имеется xaml код:
| Код | <Window.Resources> <a:RecordCollection x:Key="collection" /> </Window.Resources> <DataGrid Name="grid" SourceUpdated="DataView_SourceUpdated" DataContext="{DynamicResource ResourceKey=collection}" ItemsSource="{Binding}" IsReadOnly="True" MouseDoubleClick="DataGrid_MouseDoubleClick"> <DataGrid.Columns> <DataGridTextColumn Header="Цвет" Foreground="{Binding Path=Value}" /> <DataGridTextColumn Header="Описание" Binding="{Binding Path=Key}" /> </DataGrid.Columns> </DataGrid> </Window>
|
код формы и обработчиков событий:
| Код | private RecordCollection Records = new RecordCollection();
public MainWindow() { InitializeComponent(); Resources.Remove("collection"); Resources.Add("collection", Records); Records.Add(new Record("t1", Color.AliceBlue)); Records.Add(new Record("t2", Color.Gold)); Records.Add(new Record("t3", Color.DarkCyan)); }
private void DataView_SourceUpdated(object sender, System.Windows.Data.DataTransferEventArgs e) { //Что тут требуется сделать, чтобы содержимое контрола обновилось? }
private void DataGrid_MouseDoubleClick(object sender, System.Windows.Input.MouseButtonEventArgs e) { if (grid.SelectedItem != null) { var a = ((Record) grid.SelectedItem); MessageBox.Show(string.Format("{0} : {1}", a.Value.ToString(), a.Key)); } }
|
данным кодом пытаюсь отобразить в 1-й колонке цвет, во 2-й колонке сопутствующий текст. сейчас это выглядит вот так:

почему не отображается даже текст? |