Вы используете RelativeSource, который нельзя смешивать с ElementName, но если у вас есть правильный RelativeSource, вы можете углубиться, используя путь.
например,
Visibility="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type local:MyView} }, Path=UI_BirthdayVisibleCB.IsChecked, Converter={StaticResource BoolToVis}}"
предположительно у вас есть некоторый xaml, подобный следующему:
<UserControl class="MyView" ... >...<CheckBox Name="UI_BirthdayVisibileCB"/> ...
Приведенная выше привязка должна найти этот UserControl по типу на основе RelativeSource, затем она попытается найти свойство с именем UI_BirthdayVisibleCB, которое не будет найдено, потому что WPF XAMLреализует этот именованный элемент как поле.
Простой способ обойти это - зайти в свой код и открыть для него свойство.
public object BirthdayVisibileCB_4_binding {
get { return UI_BirthdayVisibileDB; }
}
и привязать к нему вместо этого:
Visibility="{Binding RelativeSource={RelativeSource FindAncestor,
AncestorType={x:Type local:MyView} },
Path=BirthdayVisibileCB_4_binding.IsChecked, Converter={StaticResource BoolToVis}}"
Да, этоЭто было бы болезненно, но MVVM пока подходит только для WPF ... он не очень подходит, он только лучший, который у нас есть.