WPF: контроль теряет свою привязку - PullRequest
2 голосов
/ 26 ноября 2010

У меня есть MenuItem контекстного меню Grid, и его свойство IsEnabled привязано к MyProperty. Он работает нормально, пока я фактически не нажму на обработчик события MenuItem, в котором нет кода. После того, как я нажал на MenuItem, привязка данных больше не работает.

Я могу сказать, потому что моя точка останова в получателе MyProperty не была получена.

есть идеи, почему?

Вот код:

    <my:DataGrid.ContextMenu >
        <ContextMenu Name="restoreCntextMenu" DataContext="{Binding PlacementTarget.SelectedItem, RelativeSource={RelativeSource Self}}">
            <MenuItem Header="Data Service"  Click="dataServiceToolStripMenuItem_DropDownOpening">
                <MenuItem Header="Start" Click="startDataToolStripMenuItem_Click" IsEnabled="{Binding MyProperty}" /> 
            </MenuItem>
        </ContextMenu>
    </my:DataGrid.ContextMenu>

Ответы [ 2 ]

0 голосов
/ 27 ноября 2010

Контекстные меню не являются частью визуального дерева, как и все остальное, поэтому ваши привязки не будут работать, как везде.

Вместо этого вам нужно привязать к цели размещения.Смотрите принятый ответ от на этот вопрос .

0 голосов
/ 27 ноября 2010

Я думаю, что что-то меняет текст данных.Я бы настроил кнопку или что-то еще, а затем щелкнул по вашему меню, затем по кнопке и в кнопке проверил текстовый текст меню, чтобы убедиться, что это именно то, что вы думаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...