我在放置在ContextMenu的MenuItem中的數據綁定有問題。 下面是一個簡單的例子,如何重現此問題:創建WPF數據綁定與MenuMenu中的MenuItem
<Window x:Class="test_app.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:test_app"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Grid Background="Black">
<Grid.Resources>
<ContextMenu x:Key="PART_ContextMenu" >
<MenuItem Header="Element" Foreground="DarkGreen">
<MenuItem.Icon>
<Rectangle Width="20" Height="20" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=MenuItem}}" />
</MenuItem.Icon>
</MenuItem>
</ContextMenu>
<Menu x:Key="PART_Menu">
<MenuItem Header="Element" Foreground="DarkGreen">
<MenuItem.Icon>
<Rectangle Width="20" Height="20" Fill="{Binding Foreground, RelativeSource={RelativeSource AncestorType=MenuItem}}" />
</MenuItem.Icon>
</MenuItem>
</Menu>
</Grid.Resources>
<Grid.RowDefinitions>
<RowDefinition Height="20"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<StaticResource ResourceKey="PART_Menu" />
<TextBlock Grid.Row="1" Text="test Text" Foreground="White" ContextMenu="{StaticResource PART_ContextMenu}"/>
</Grid>
兩個菜單爲網格的資源,以確保它的工作方式相同。 我想將MenuItem的Foreground畫筆綁定到圖標的填充畫筆。這適用於菜單,但不適用於ContextMenu。沒有綠色的矩形。如果我用一種顏色代替綁定。 我添加以下行主窗口c'tor以獲取更多信息
System.Diagnostics.PresentationTraceSources.DataBindingSource.Switch.Level = System.Diagnostics.SourceLevels.Critical;
但WPF沒有報告任何數據綁定錯誤,警告或信息。 任何人都可以解釋這裏發生了什麼?
乾杯
我的系統中也沒有錯誤。但改用DynamicResource解決了這個問題。 – AnjumSKhan