它看起来很简单,我尝试了我所知道的所有可能的方法来修复这个错误--仍然没有运气,看起来好像我错过了什么。这是我的密码。至少相关的部分
<ItemsControl ItemsSource="{Binding Source}" >
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<Grid/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
<ItemsControl.ItemTemplate>
<DataTemplate>
<VirtualizingStackPanel Orientation="Horizontal">
<ContentControl>
<Path x:Name="Bound" Stroke="Black">
<Path.Style>
<Style>
<Style.Triggers>
<MultiDataTrigger>
<MultiDataTrigger.Conditions>
<Condition Binding="{Binding Condition1}"
Value="true"/>
<Condition Binding="{Binding Condition2}"
Value="false"/>
</MultiDataTrigger.Conditions>
<Setter Property="Path.Data">
<Setter.Value>
<RectangleGeometry Rect="{Binding Rect1}"/>
</Setter.Value>
</Setter>
<Setter Property="Path.Fill">
<Setter.Value>
<VisualBrush>
<VisualBrush.Visual>
// Here is the Problem
<TextBlock Text="{Binding Number}"
Width="50"
Height="30"
Background="White" />
// Binding is not working
</VisualBrush.Visual>
</VisualBrush>
</Setter.Value>
</Setter>
</MultiDataTrigger>
</Style.Triggers>
</Style>
</Path.Style>
</Path>
</ContentControl>
</VirtualizingStackPanel>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>TextBlock在visualBrush中没有得到值
“‘Number”
如果我删除所有触发器,那么一切都正常。不知何故,装订中出现了裂痕。
发布于 2015-06-11 09:44:38
这是因为VisualBrush没有DataContext。您必须使用代理元素。
还没亲自试过,但应该管用.评论,如果它没有!
干杯。
发布于 2015-06-11 09:36:15
像VisualBrush这样的可冻结对象不是元素树的一部分(逻辑树或VisualTree )。因此,您必须获取数据文本并绑定到VisualBrush的可视属性。
假设数字来自ViewModel,那么修改代码如下:
<TextBlock Text="{Binding Path=Number}" Width="50" Height="30" Background="White" /> https://stackoverflow.com/questions/30775850
复制相似问题