Я думаю, что происходит то, что свойство IsReadOnly
делает чтение DataGrid
только через DefaultView для persons
, и поскольку этот DefaultView будет одинаковым для обоих ваших DataGrid's
, обе теряют способность для добавления новых строк.
Оба не становятся readonly однако (как вы сказали в своем вопросе), поэтому я не уверен, что это ошибка или желаемое поведение.
Я также не уверен, что происходит за кулисами здесь, что вызывает это поведение, но вы можете проверить, что CollectionView одинаковы с помощью отладчика (поскольку свойство CollectionView является закрытым). Следующие три утверждения выходят как истинные
dgA.Items.CollectionView == CollectionViewSource.GetDefaultView(persons) // true
dgB.Items.CollectionView == CollectionViewSource.GetDefaultView(persons) // true
dgA.Items.CollectionView == dgB.Items.CollectionView // true
. Вы можете заставить его работать так, как вам нравится, изменив List
на ObservableCollection
и используя отдельный ListViewCollection's
для вашего DataGrid's
public MainWindow()
{
InitializeComponent();
ObservableCollection<Person> persons = new ObservableCollection<Person>();
persons.Add(new Person() { FirstName = "Bob", LastName = "Johnson" });
persons.Add(new Person() { FirstName = "John", LastName = "Smith" });
dgA.ItemsSource = new ListCollectionView(persons);
dgB.ItemsSource = new ListCollectionView(persons);
}
Чтобы установить переменную среды в Windows, я предлагаю вам использовать команду PowerShell для ее достижения. В PowerShell вы можете просто сделать это следующим образом:
$env:ACCESS_KEY=$(az keyvault secret show -n terraform-backend-key --vault-name myKeyVault --query value -o tsv)
Кроме того, в вашей команде CLI вы не можете показать секрет напрямую, он выводит весь секрет, а не только ключ доступа, как вы хотите. Смотрите разницу между двумя командами.