我已经在这几个小时了,我没有得到什么不起作用或它是如何工作的。一些解释将是欣赏所有这些行为。
我正在尝试添加基于其他单元格内容的触发器,如果我忘记了绑定部分,它工作正常。
我的问题实际上是Binding本身。如果它在ContentControl中,它根本不起作用。
我的代码:
<GridViewColumn.CellTemplate>
<DataTemplate>
<ContentControl>
<ContentControl.Style>
<Style TargetType="{x:Type ContentControl}">
<Style.Triggers>
<DataTrigger Binding="{Binding CBW_Type}" Value="Text">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Text="{Binding Path=CBW_Content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</Setter.Value>
</Setter>
</DataTrigger>
</Style.Triggers>
</Style>
</ContentControl.Style>
</ContentControl>
</DataTemplate>
</GridViewColumn.CellTemplate>
我尝试了以下内容,它按预期工作(没有触发器)。数据就好了。
<GridViewColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=CBW_Content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</GridViewColumn.CellTemplate>
我搜索过很多已经使用UpdateSourceTrigger = PropertyChanged解决了这个问题,但它对我没有用。
一旦我在ContentControl中嵌入绑定,任何人都可以告诉我什么不起作用?
此致
答案 0 :(得分:1)
刚刚找到答案。我需要添加,所以ContentControl不是空的我猜。如果有人能说明那个,我会很感激。
DataContext
ContentTemplate
的{{1}}是ContentControl
的{{1}}。因此,要使绑定到Content
属性起作用,您需要将ContentControl
的{{1}}属性设置或绑定到CBW_Content
属性所在的对象的实例定义。
在这种情况下,这是Content
的{{1}}集合中的相应对象。这就是ContentControl
工作的原因。
如果您没有设置或绑定CBW_Content
属性,那么就没有什么可以约束的,这就是为什么ItemsSource
无法正常工作。<\ n> / p>
希望这是有道理的。
答案 1 :(得分:0)
ContentTemplate
是为Content
提供不同的模板,没有Content
=&gt; ContentTemplate clueless
。因此,您也可以将ContentTemplate
替换为Content
,并在原始代码中删除DataTemplate
,如下所示:
<Setter Property="Content">
<Setter.Value>
<TextBlock Text="{Binding Path=CBW_Content, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
</Setter.Value>
</Setter>