@@ -146,22 +146,26 @@ protected override void OnNavigatedTo(NavigationEventArgs eventArgs)
146146
147147 if ( FolderSettings ? . ColumnsViewModel is not null )
148148 {
149- ColumnsViewModel . DateCreatedColumn = FolderSettings . ColumnsViewModel . DateCreatedColumn ;
150- ColumnsViewModel . DateDeletedColumn = FolderSettings . ColumnsViewModel . DateDeletedColumn ;
151- ColumnsViewModel . DateModifiedColumn = FolderSettings . ColumnsViewModel . DateModifiedColumn ;
152- ColumnsViewModel . IconColumn = FolderSettings . ColumnsViewModel . IconColumn ;
153- ColumnsViewModel . ItemTypeColumn = FolderSettings . ColumnsViewModel . ItemTypeColumn ;
154- ColumnsViewModel . NameColumn = FolderSettings . ColumnsViewModel . NameColumn ;
155- ColumnsViewModel . PathColumn = FolderSettings . ColumnsViewModel . PathColumn ;
156- ColumnsViewModel . OriginalPathColumn = FolderSettings . ColumnsViewModel . OriginalPathColumn ;
157- ColumnsViewModel . SizeColumn = FolderSettings . ColumnsViewModel . SizeColumn ;
158- ColumnsViewModel . StatusColumn = FolderSettings . ColumnsViewModel . StatusColumn ;
159- ColumnsViewModel . TagColumn = FolderSettings . ColumnsViewModel . TagColumn ;
160- ColumnsViewModel . GitStatusColumn = FolderSettings . ColumnsViewModel . GitStatusColumn ;
161- ColumnsViewModel . GitLastCommitDateColumn = FolderSettings . ColumnsViewModel . GitLastCommitDateColumn ;
162- ColumnsViewModel . GitLastCommitMessageColumn = FolderSettings . ColumnsViewModel . GitLastCommitMessageColumn ;
163- ColumnsViewModel . GitCommitAuthorColumn = FolderSettings . ColumnsViewModel . GitCommitAuthorColumn ;
164- ColumnsViewModel . GitLastCommitShaColumn = FolderSettings . ColumnsViewModel . GitLastCommitShaColumn ;
149+ // Don't assign the columns view model directly, instead update each property individually using the Update method.
150+ // This is done to workaround a bug where CsWinRT doesn't properly track the memory of the object so that
151+ // an invalid memory access can occur when the object is moved.
152+ // See https://github.com/microsoft/CsWinRT/issues/1834.
153+ ColumnsViewModel . DateCreatedColumn . Update ( FolderSettings . ColumnsViewModel . DateCreatedColumn ) ;
154+ ColumnsViewModel . DateDeletedColumn . Update ( FolderSettings . ColumnsViewModel . DateDeletedColumn ) ;
155+ ColumnsViewModel . DateModifiedColumn . Update ( FolderSettings . ColumnsViewModel . DateModifiedColumn ) ;
156+ ColumnsViewModel . IconColumn . Update ( FolderSettings . ColumnsViewModel . IconColumn ) ;
157+ ColumnsViewModel . ItemTypeColumn . Update ( FolderSettings . ColumnsViewModel . ItemTypeColumn ) ;
158+ ColumnsViewModel . NameColumn . Update ( FolderSettings . ColumnsViewModel . NameColumn ) ;
159+ ColumnsViewModel . PathColumn . Update ( FolderSettings . ColumnsViewModel . PathColumn ) ;
160+ ColumnsViewModel . OriginalPathColumn . Update ( FolderSettings . ColumnsViewModel . OriginalPathColumn ) ;
161+ ColumnsViewModel . SizeColumn . Update ( FolderSettings . ColumnsViewModel . SizeColumn ) ;
162+ ColumnsViewModel . StatusColumn . Update ( FolderSettings . ColumnsViewModel . StatusColumn ) ;
163+ ColumnsViewModel . TagColumn . Update ( FolderSettings . ColumnsViewModel . TagColumn ) ;
164+ ColumnsViewModel . GitStatusColumn . Update ( FolderSettings . ColumnsViewModel . GitStatusColumn ) ;
165+ ColumnsViewModel . GitLastCommitDateColumn . Update ( FolderSettings . ColumnsViewModel . GitLastCommitDateColumn ) ;
166+ ColumnsViewModel . GitLastCommitMessageColumn . Update ( FolderSettings . ColumnsViewModel . GitLastCommitMessageColumn ) ;
167+ ColumnsViewModel . GitCommitAuthorColumn . Update ( FolderSettings . ColumnsViewModel . GitCommitAuthorColumn ) ;
168+ ColumnsViewModel . GitLastCommitShaColumn . Update ( FolderSettings . ColumnsViewModel . GitLastCommitShaColumn ) ;
165169 }
166170
167171 ParentShellPageInstance . ShellViewModel . EnabledGitProperties = GetEnabledGitProperties ( ColumnsViewModel ) ;
0 commit comments