저는 데이터를 표시하는 데 infragistics와 wpf를 사용하는 응용 프로그램을 개발하고 있습니다. 내 코드는 다음과WPF- 관찰 가능한 컬렉션이있는 XamDatagrid를 바인딩 할 수 없습니다.
<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 파일은 네 개의 필드 매개 변수, 값, 단위 및 인스턴스가 포함되어 있습니다.
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));
}
}
}
실행하면 빈 화면 만 표시됩니다. 그러나 ItemsSource = "{Binding ViewSetList}"xaml 파일에 포함되어 있습니다. 왜 바인딩이 일어나지 않는지 말해 줄 수 있습니까?
바인딩 XamDataGrid도 필요합니까?
도움을 주실 수 있습니다.
감사
는
코드에 문제가 너무 많아서 좋은 [mcve]를 제공하지 않으므로 실제 답변을 제공하는 것은 실용적이지 않습니다. 그러나 : 속성에만 바인딩 할 수 있습니다. 그리고 속성은 공개되어야합니다. 그리고 C#은 대소 문자를 구별하므로'ViewSetList'는'viewSetList'와 같지 않습니다. 그리고 {Binding ViewSetList}는 컨트롤의 _item_ 컨텍스트에서 유효하지 않습니다. 당신은 그 문제에 집중함으로써 시작해야합니다. 여전히 도움이 필요하다면, 좋은 [mcve]를 포함하는 질문을 게시하고 디버깅을 위해 이미 수행 한 작업에 대해 좀 더 구체적이고 –
에 도움이 필요한 항목을 공개하고 viewSetList에 대한 바인딩을 변경했습니다. 하지만 여전히 빈 화면이 나타납니다. –
코드에서 유일한 문제는 아닙니다. 그것들은 내가 이전에 언급 한 유일한 문제조차 아니다. –