전자 구성 요소의 재고를 관리하기 위해 WPF 소프트웨어를 구축하고 있습니다.개체 유형 및 하위 유형을 기반으로하는 WPF DataGrid 동적 열
나는 다음과 같은 구조를 가지고 :
public class Part
{
public string Manufacturer { get; set; }
public string PartNumber { get; set; }
}
public class Resistor : Part
{
public string Resistance { get; set;}
public string Power { get; set;}
}
public class Capacitor : Part
{
public string Capacitance { get; set; }
public string Voltage { get; set; }
}
저항과 콘덴서는 파트의 서브 타입이다.
저는 DataGrid
을 ObservableCollection<Part>
에 바인딩하고 ListCollectionView
을 사용하여 필터링 및 그룹화 기능을 추가했습니다. 나는 단지 Resistor
하위 유형을 얻기 위해 ListCollectionView
를 필터링 할 때
내가 달성하기 위해 노력하고있어 것은, 나는 DataGrid
그것이 Resistor
유형의 속성을 보여주기 위해 열을의 업데이트 할하고 기본 클래스 Part
이다 (그래서를 얻을 것 열 제조업체, 부품 번호, 저항 및 전력). 동시에 ListCollectionView
을 필터링하여 Capacitor
하위 유형을 가져 오는 경우 DataGrid
은 Capacitor
클래스 공용 속성과 Part
공용 속성 (제조업체, 부품 번호, 커패시턴스 및 전압)을 가져야합니다. 마지막으로 필터링을 적용하지 않으면 DataGrid
에 Part
속성 (제조업체 및 부품 번호) 만 표시됩니다. 난 단지 Resistors
을 위해 ListCollectionView
를 필터링 할 경우에도,
AutoGenerateColumns=true
을 사용하려고하지만
DataGrid
은
Part
특성을 보여줍니다. 또한
ObservableCollection
의 유형을
dynamic
으로 변경하려고 시도했지만 작동하지 않았습니다.
DataGrid
열을 ObservableCollection
에 포함 된 개체의 유형에 따라 어떻게 변경할 수 있습니까?
이 기능은 작동하지만 GetItemProperties는 응용 프로그램을 불러올 때만 호출됩니다.필터링이 ObservableCollection에서 가져온 ListViewCollection에 적용될 때마다 새로 고쳐야합니다. 이것이 가능한가? – RHaguiuda
예, 그렇지만 매우 우아하지는 않습니다 ... dataGrid.ItemsSource = null; dataGrid.ItemsSource = PartCollection; – AQuirky
감사합니다. 잘된 일. – RHaguiuda