|
24 | 24 | <!-- Count to Visibility Converter (shows when count is 0) --> |
25 | 25 | <vm:CountToVisibilityConverter x:Key="CountToVisibilityConverter" /> |
26 | 26 |
|
| 27 | + <!-- Binding Proxy to access ViewModel from ContextMenus (which exist outside the visual tree) --> |
| 28 | + <vm:BindingProxy x:Key="ViewModelProxy" Data="{Binding}" /> |
| 29 | + |
27 | 30 | <!-- TreeView Item Style for proper selection binding --> |
28 | 31 | <Style TargetType="TreeViewItem"> |
29 | 32 | <Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}" /> |
|
248 | 251 | <Setter Property="ContextMenu"> |
249 | 252 | <Setter.Value> |
250 | 253 | <ContextMenu> |
251 | | - <MenuItem Header="Connect" Command="{Binding DataContext.ConnectCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
252 | | - <MenuItem Header="Disconnect" Command="{Binding DataContext.DisconnectCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 254 | + <MenuItem Header="Connect" Command="{Binding Data.ConnectCommand, Source={StaticResource ViewModelProxy}}" /> |
| 255 | + <MenuItem Header="Disconnect" Command="{Binding Data.DisconnectCommand, Source={StaticResource ViewModelProxy}}" /> |
253 | 256 | <Separator /> |
254 | | - <MenuItem Header="Refresh" Command="{Binding DataContext.RefreshCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 257 | + <MenuItem Header="Refresh" Command="{Binding Data.RefreshCommand, Source={StaticResource ViewModelProxy}}" /> |
255 | 258 | <Separator /> |
256 | | - <MenuItem Header="Edit Connection..." Command="{Binding DataContext.EditConnectionCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
257 | | - <MenuItem Header="Delete Connection" Command="{Binding DataContext.DeleteConnectionCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 259 | + <MenuItem Header="Edit Connection..." Command="{Binding Data.EditConnectionCommand, Source={StaticResource ViewModelProxy}}" /> |
| 260 | + <MenuItem Header="Delete Connection" Command="{Binding Data.DeleteConnectionCommand, Source={StaticResource ViewModelProxy}}" /> |
258 | 261 | </ContextMenu> |
259 | 262 | </Setter.Value> |
260 | 263 | </Setter> |
|
263 | 266 | <Setter Property="ContextMenu"> |
264 | 267 | <Setter.Value> |
265 | 268 | <ContextMenu> |
266 | | - <MenuItem Header="Refresh" Command="{Binding DataContext.RefreshCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 269 | + <MenuItem Header="Refresh" Command="{Binding Data.RefreshCommand, Source={StaticResource ViewModelProxy}}" /> |
267 | 270 | </ContextMenu> |
268 | 271 | </Setter.Value> |
269 | 272 | </Setter> |
|
272 | 275 | <Setter Property="ContextMenu"> |
273 | 276 | <Setter.Value> |
274 | 277 | <ContextMenu> |
275 | | - <MenuItem Header="Refresh" Command="{Binding DataContext.RefreshCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 278 | + <MenuItem Header="Refresh" Command="{Binding Data.RefreshCommand, Source={StaticResource ViewModelProxy}}" /> |
276 | 279 | </ContextMenu> |
277 | 280 | </Setter.Value> |
278 | 281 | </Setter> |
|
281 | 284 | <Setter Property="ContextMenu"> |
282 | 285 | <Setter.Value> |
283 | 286 | <ContextMenu> |
284 | | - <MenuItem Header="New Document..." Command="{Binding DataContext.NewDocumentCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 287 | + <MenuItem Header="New Document..." Command="{Binding Data.NewDocumentCommand, Source={StaticResource ViewModelProxy}}" /> |
285 | 288 | <Separator /> |
286 | | - <MenuItem Header="Refresh" Command="{Binding DataContext.RefreshCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 289 | + <MenuItem Header="Refresh" Command="{Binding Data.RefreshCommand, Source={StaticResource ViewModelProxy}}" /> |
287 | 290 | </ContextMenu> |
288 | 291 | </Setter.Value> |
289 | 292 | </Setter> |
|
292 | 295 | <Setter Property="ContextMenu"> |
293 | 296 | <Setter.Value> |
294 | 297 | <ContextMenu> |
295 | | - <MenuItem Header="Open" Command="{Binding DataContext.OpenDocumentCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 298 | + <MenuItem Header="Open" Command="{Binding Data.OpenDocumentCommand, Source={StaticResource ViewModelProxy}}" /> |
296 | 299 | <Separator /> |
297 | | - <MenuItem Header="Copy Document ID" Command="{Binding DataContext.CopyDocumentIdCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 300 | + <MenuItem Header="Copy Document ID" Command="{Binding Data.CopyDocumentIdCommand, Source={StaticResource ViewModelProxy}}" /> |
298 | 301 | <Separator /> |
299 | | - <MenuItem Header="Delete" Command="{Binding DataContext.DeleteDocumentCommand, RelativeSource={RelativeSource AncestorType=TreeView}}" /> |
| 302 | + <MenuItem Header="Delete" Command="{Binding Data.DeleteDocumentCommand, Source={StaticResource ViewModelProxy}}" /> |
300 | 303 | </ContextMenu> |
301 | 304 | </Setter.Value> |
302 | 305 | </Setter> |
|
0 commit comments