【发布时间】:2017-11-10 04:34:38
【问题描述】:
我正在开发一个使用基础设施和 wpf 来显示数据的应用程序。 我的代码是这样的
<Grid>
<ItemsControl x:Name="MyItemContol" ItemsSource="{Binding ViewSetList}"
VerticalAlignment="Stretch" HorizontalAlignment="Stretch">
<ItemsControl.ItemTemplate>
<DataTemplate>
<igDP:XamDataGrid DataSource="{Binding ViewSetList}" >
<igDP:XamDataGrid.FieldLayouts>
<igDP:FieldLayout>
<igDP:FieldLayout.Fields>
<igDP:Field Name="PARAMETER">
<igDP:Field.Settings>
<igDP:FieldSettings AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="VALUE">
<igDP:Field.Settings>
<igDP:FieldSettings AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="UNIT">
<igDP:Field.Settings>
<igDP:FieldSettings AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
<igDP:Field Name="INSTANCE">
<igDP:Field.Settings>
<igDP:FieldSettings AllowEdit="False" />
</igDP:Field.Settings>
</igDP:Field>
</igDP:FieldLayout.Fields>
</igDP:FieldLayout>
</igDP:XamDataGrid.FieldLayouts>
</igDP:XamDataGrid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
</Grid>
这个xaml文件包含四个字段Parameter、value、unit和instances。
public partial class MainWindow : Window
{
private ObservableCollection<Parameters> viewSetList = new
ObservableCollection<Parameters>();
public MainWindow()
{
InitializeComponent();
//Add data to the collection
viewSetList.Add(new Parameters() { PARAMETER="abc", INSTANCE="def" , UNIT="hhshhd", VALUE="hahha" });
}
public class Parameters: INotifyPropertyChanged
{
private string parameterName = string.Empty;
public string PARAMETER
{
get { return parameterName; }
set { parameterName = value; }
}
private string parameterValue = string.Empty;
public string VALUE
{
get { return parameterValue; }
set { parameterValue = value; }
}
private string parameterUnit = string.Empty;
public string UNIT
{
get { return parameterUnit; }
set { parameterUnit = value; }
}
private string instance = string.Empty;
public string INSTANCE
{
get { return instance; }
set { instance = value; }
}
public event PropertyChangedEventHandler PropertyChanged;
private void onPropertyChanged(object sender, string propertyName)
{
if (this.PropertyChanged != null)
{
PropertyChanged(sender, new PropertyChangedEventArgs(propertyName));
}
}
}
当我执行时,它只显示空白屏幕。但是我在 xaml 文件中包含了 ItemsSource="{Binding ViewSetList}" 。谁能告诉我为什么绑定没有发生?
我还需要绑定 XamDataGrid 吗?
我们将不胜感激。
谢谢
【问题讨论】:
-
代码有太多错误,你也懒得提供一个好的minimal reproducible example,所以试图提供一个实际的答案是不切实际的。但是:您只能绑定到属性。并且这些属性需要是公开的。而且C#区分大小写,所以
ViewSetList和viewSetList不一样。而{Binding ViewSetList}在您控件中的 item 上下文中将无效。您应该首先关注这些问题。如果您仍然需要帮助,请发布一个问题,其中包含一个好的 minimal reproducible example,并且更具体地说明您已经完成了哪些调试工作以及您需要哪些帮助 -
我将其公开并将绑定更改为 viewSetList。但我仍然得到黑屏
-
这些不是代码中唯一的问题。这些甚至不是我在之前的评论中提到的唯一问题。
-
我听不懂你在说什么?
-
对不起,你看不懂我的cmets。但是,请注意,“我无法理解您在说什么” 声明并没有提供任何有用的反馈来说明您具体 不理解的内容或我如何理解可能会改写我所说的,以便您理解。请更加努力地使您的沟通更加准确,并提供所有必要的细节以推动沟通向前发展。
标签: c# wpf xaml infragistics xamdatagrid