Как определить AncestorLevel?
Посмотрев на визуальное дерево и выяснив количество вхождений указанного c типа родительского элемента. Хотя может быть только одно родительское окно верхнего уровня.
Зачем мне вообще нужно указывать это, если я знаю, что когда-либо есть только одно окно?
Вам не нужно. Это прекрасно, а также очень распространено указывать только AncestorType
следующим образом:
{Binding SomePropertyOfTheWindow, RelativeSource={RelativeSource AncestorType=Window}}" />
Если я выясню AncestorLevel, разве это не делает код хрупким? (Если я изменю вложение визуальных элементов, оно, очевидно, сломается.)
Да, это правильно, но именно так вы указываете механизму привязки к какому конкретному элементу указанного c тип, который вы хотите привязать - при условии, что есть несколько вариантов для выбора.