Есть DataGrid
:
<DataGrid x:Name="c_dataGrid" ItemsSource="{Binding myDT.DefaultView, UpdateSourceTrigger=PropertyChanged}"
AutoGenerateColumns="True"
CanUserAddRows="False" CanUserDeleteRows="False"
CanUserReorderColumns="False" CanUserResizeColumns="False"
CanUserResizeRows="False" CanUserSortColumns="False"
HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden".>
Изначально, мы привязывает к ней DataTable
: public DataTable myDT { get; set; }
. Если мы изменяем, например, заголовок столбца через DataTable
, то он изменяется и на форме, но если мы добавляем новый столбец в DataTable
, например вот так: dataTable.Columns.Add("NewRowName", typeof(string), "");
или вот так:
dataTable.Columns.Add("NewRowName");
foreach (DataRow dataTableRow in dataTable.Rows) {
dataTableRow["NewRowName"] = "";
}
То ничего не происходит, в DataTable
столбец добавился, а на форму - нет.
Как это исправить?
Если честно, то не знаю, почему это работает, возможно криво работает INotifyPropertyChanged внутри DataTable, но обнуление коллекции исправило мою проблему.
Создаем событие для оповещения об изменении коллекции:
public delegate void DataTableUpdated(DataTable dt);
public event DataTableUpdated DataTableUpdate;
В кострукторе VM подписываемся на событие:
DataTableUpdate += dt => {
myDT = null;
myDT = dt;
};
Вполне возможно, что это не самый лучший вариант.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Как изменить заголовок именно в админке WordPress? Нужно убрать именно слово "WordPress", которое добавляется после заголовка на каждой странице в админкеМожет,...
При отправке сообщения боту не отправляется запрос через webhookWebhook успешно установил, у домена есть SSL-сертификат от Let's Encrypt, рейтинг А
Пробую сделать авторизацию через ГосуслугиПорядок подключения сайта понятен
Столкнулся со следующей проблемой: когда изменяю права/роли у пользователя, то ему необходимо перезайти в свой аккаунт, чтобы они обновилисьМожно...