c# - 无法将数据网格绑定到我的类对象的可观察集合
问题描述
我正在编写一个有多个选项卡的 GUI。每个选项卡都有一个标题和内容。Tab 绑定到对象 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");
}
}
}
解决方案
我绑定到私有成员而不是属性。修改后的 Xaml 代码:
<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 HeaderData}" FontFamily="Arial" />*
</DataGrid.Columns>
</DataGrid>
</DataTemplate>
</TabControl.ContentTemplate>
推荐阅读
- android-studio - java.lang.RuntimeException:编译时无法启动活动 ComponentInfo,“,”附近的语法错误
- android - Android Studio Cmake构建错误:向量类型之间的无效转换
- php - MyBB find_replace_templatesets 不工作
- python - Python写入文件使用不必要的存储?
- java - 为什么我的循环在计算最后一个数字之前就跳出来了?
- unit-testing - 酶:wrapper.find('SickButton').simulate('click') 没有点击
- regex - 谷歌表格:正则提取
- sql-server - 在 BeginTrans 之后立即 CommitTrans
- c# - 从 python 访问 System.Reflection.Pointer
- python - 为什么输入数组在递归函数内部会发生变化?