{"record":{"id":"0041366af1eefa24","repo":"MaterialDesignInXAML/MaterialDesignInXamlToolkit","slug":"childdependencyobject","errorCode":null,"errorMessage":"childDependencyObject","messagePattern":"childDependencyObject","errorType":"exception","errorClass":"ArgumentNullException","httpStatus":null,"severity":"error","filePath":"src/MaterialDesignThemes.Wpf/DialogHostEx.cs","lineNumber":206,"sourceCode":"\n        return dialogHost;\n    }\n\n    private static DialogHost GetFirstDialogHost(Window window, object? dialogIdentifier)\n    {\n        if (window is null) throw new ArgumentNullException(nameof(window));\n\n        DialogHost? dialogHost = window.VisualDepthFirstTraversal().OfType<DialogHost>().FirstOrDefault(x => x.Identifier is not null && x.Identifier.Equals(dialogIdentifier));\n\n        if (dialogHost is null)\n            throw new InvalidOperationException($\"Unable to find a DialogHost with identifier '{dialogIdentifier}' in visual tree\");\n\n        return dialogHost;\n    }\n\n    private static DialogHost GetOwningDialogHost(DependencyObject childDependencyObject)\n    {\n        if (childDependencyObject is null) throw new ArgumentNullException(nameof(childDependencyObject));\n\n        DialogHost? dialogHost = childDependencyObject.GetVisualAncestry().OfType<DialogHost>().FirstOrDefault();\n\n        if (dialogHost is null)\n            throw new InvalidOperationException(\"Unable to find a DialogHost in visual tree ancestry\");\n\n        return dialogHost;\n    }\n    private static DialogHost GetOwningDialogHost(DependencyObject childDependencyObject, object dialogIdentifier)\n    {\n        if (childDependencyObject is null) throw new ArgumentNullException(nameof(childDependencyObject));\n\n        DialogHost? dialogHost = childDependencyObject.GetVisualAncestry().OfType<DialogHost>().FirstOrDefault(x => x.Identifier is not null && x.Identifier.Equals(dialogIdentifier));\n\n        if (dialogHost is null)\n            throw new InvalidOperationException($\"Unable to find a DialogHost in visual tree ancestry with identifier {dialogIdentifier}\");\n\n        return dialogHost;","sourceCodeStart":188,"sourceCodeEnd":224,"githubUrl":"https://github.com/MaterialDesignInXAML/MaterialDesignInXamlToolkit/blob/98edec3a0b96ef272c587b14bcd67ef5f928a7ed/src/MaterialDesignThemes.Wpf/DialogHostEx.cs#L188-L224","documentation":"ArgumentNullException(nameof(childDependencyObject)) in GetOwningDialogHost(DependencyObject) (DialogHostEx.cs:206). The ShowDialog(DependencyObject, ...) extension methods walk up the visual ancestry from this object; a null DependencyObject cannot start the walk.","triggerScenarios":"Calling someControl.ShowDialog(content) where someControl is null (e.g. a not-yet-initialized control field, a disposed element, or a null from a failed FindName).","commonSituations":"Showing a dialog from an event whose sender is cast/null; using a control reference before InitializeComponent resolves it; refactor leaving a control field null.","solutions":["Null-check the DependencyObject before calling ShowDialog.","Resolve the control from a non-null source (x:Name field after Loaded, or sender cast with 'is').","Prefer DialogHost.Show(content, identifier) so you do not depend on a child control reference."],"exampleFix":"// before\n((Button)sender).ShowDialog(content); // sender could be null\n\n// after\nif (sender is DependencyObject d)\n    await d.ShowDialog(content);","handlingStrategy":"validation","validationCode":"if (childDependencyObject is null)\n    throw new ArgumentNullException(nameof(childDependencyObject));\n\nawait childDependencyObject.ShowDialog(content);","typeGuard":"static bool HasOwningDialogHost(DependencyObject? d) =>\n    d is not null && d.GetVisualAncestry().OfType<DialogHost>().Any();","tryCatchPattern":null,"preventionTips":["Null-check the DependencyObject before invoking ShowDialog.","Resolve controls via x:Name after InitializeComponent or from 'sender is DependencyObject'.","Prefer DialogHost.Show(content, identifier) to avoid depending on a child control."],"tags":["wpf","materialdesigninxaml","argument-null","visual-tree","dialog"],"backgroundTag":null,"analyzedSha":"98edec3a0b96ef272c587b14bcd67ef5f928a7ed","analyzedAt":"2026-08-13T14:31:19.111Z","schemaVersion":2},"datasetVersion":"2026-08-13T19:17:28.613Z"}