Я пишу GUI, где у меня есть несколько вкладок. каждая вкладка имеет заголовок и содержание. Вкладка привязана к наблюдаемым коллекциям объекта Item. Содержимое вкладки представляет собой DataGrid, который я хочу связать с другим объектом LogGUIData (который является переменной члена класса Item). Данные заполняются чтением сокета. Я устал, чтобы найти много ответов, но не смог найти ни одного. Я знаю, что чего-то не хватает, так как я новичок в C# и программировании WPF. Мой код ниже. Заранее спасибо
<TabControl.ContentTemplate>
<DataTemplate>
<DataGrid Name="dgLogdata" Margin="10" VerticalScrollBarVisibility="Visible" ItemsSource="{Binding LogDataOC, Mode=TwoWay}"
AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" >
<DataGrid.Columns>
<DataGridTextColumn Header="Header" Binding="{Binding strHeaderData}" FontFamily="Arial" />
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
c# код
public class Item : INotifyPropertyChanged
{
public string Header { get; set; }
public static int _count = -1;
public int Count
{
get { return _count; }
set { _count = value; }
}
public Item()
{
LogDataOC = new ObservableCollection<GUILogData>();
_count++;//increase the count of tab. This will represent the index of the tab
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string propertyName)
{
var handler = PropertyChanged;
handler?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
private ObservableCollection<GUILogData> _logDataOC { get; set; }
public ObservableCollection<GUILogData> LogDataOC
{
get { return _logDataOC; }
set
{
_logDataOC = value;
OnPropertyChanged("LogDataOC");
}
}
}