Хороший способ сделать это в одной строке с помощью pandas.concat()
:
import pandas as pd
pd.concat([df], keys=['Foo'], names=['Firstlevel'])
Это может быть обобщено на многие кадры данных, см. docs .
OverrideMetadata
не должно быть обязательным в статическом конструкторе (но он должен быть там). Вы можете поместить это, например. в Button.Click
обработчик событий.
PropertyChangedCallback не может быть статической функцией
blockquote>Это неправильно. PropertyChangedCallback может быть статической функцией.
Проблема в том, что если кто-то уже зарегистрировал / переопределил метаданные для свойства, вы получите исключение.
См. В MSDN:
Кроме того, метаданные могут быть переопределены только один раз для каждого типа. Последующие попытки переопределить метаданные одного и того же типа вызовут исключение.
blockquote>Для отслеживания изменений в DataContext просто используйте соответствующее событие
ContentControl.DataContextChanged
.<ContentControl DataContextChanged="OnDataContextChanged">
Чтобы избежать кода, используйте обработку поведения
DataContextChanged
.