У меня есть MenuItem контекстного меню Grid и его свойство IsEnabled привязано к MyProperty. Он отлично работает, пока я на самом деле не нажму на обработчик событий MenuItem, в котором нет кода. После того, как я нажал на MenuItem, dataBinding больше не работает.WPF: управление потеряет привязку
Я могу сказать, что «моя точка останова в getter 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>
Является ли `MyProperty`` DependencyProperty`? Если да: инфраструктура WPF не использует фактический getter для разрешения привязок, он непосредственно вызывает GetValue. Поэтому вы не можете определить, действительно ли задано значение. (Кстати, это вообще плохая идея, чтобы что-то сделать в DP (s | g) etter, а затем просто позвонить (S | G) etValue) – Vlad 2010-11-26 12:55:08