Как установить DataContext одного элемента управления для кодирования позади?
Невозможно использовать DataContext для Windows, поскольку это указывает на что-то другое.
Для одного элемента управления я хотел бы установить DataContext в codebehind, но не могу понять это.
Не использовать MVVM.Как установить DataContext одного элемента управления для кодирования отстающего
Это не работает, поскольку RelativeSource отображается в ComboBox.
<ComboBox DataContext="{Binding RelativeSource={RelativeSource Self}}" ItemsSource="{Binding Path=Chars}" SelectedItem="{Binding Path=Comma}" Width="40" PresentationTraceSources.TraceLevel="High" />
Это страница - не окно
Это работает:
<ComboBox DataContext="{Binding RelativeSource={RelativeSource AncestorType=Page}}" ItemsSource="{Binding Path=Chars}" SelectedItem="{Binding Path=Comma, Mode=TwoWay}" Width="40" PresentationTraceSources.TraceLevel="High" />
Есть ли лучшее решение?
Вы попробовали дать 'ComboBox' имя say' x: Name = "cmBox" и в коде для загруженного события назначить 'DataContext' непосредственно' Loaded + = (sender, args) => cmBox.DataContext = this; 'где' this' является классом кода, который вы хотите установить как 'DataContext' ComboBox' – Viv
@Viv, который работал. – Paparazzi
@Viv, как насчет обновления вашего комментария к ответу и Blam, не могли бы вы отметить этот вопрос в ответ, так что люди не теряют время, приходя сюда, чтобы дать вам ответ? – Sheridan