TextBlock IsEnabled绑定有什么问题?

时间:2010-10-26 18:41:24

标签: wpf data-binding textblock isenabled

我有一个简单的文本块,标签和文本框作为内容。 我想将文本块的IsEnabled属性绑定到我的视图模型上的属性。无论出于何种原因,即使IsEnabled属性在视图模型上正确更改,标签和文本框也会保持禁用状态。

任何人都知道这里发生了什么?

这不起作用:

<TextBlock IsEnabled="{Binding Path=IsEnabledProperty}">
    <Label Content="Test"/>
    <TextBox Text="blah"/>
</TextBlock>

这很好用:

<TextBlock>
    <Label IsEnabled="{Binding Path=IsEnabledProperty}" Content="Test"/>
    <TextBox IsEnabled="{Binding Path=IsEnabledProperty}" Text="blah"/>
</TextBlock>

像这样使用TextBlock是一个坏主意吗?

3 个答案:

答案 0 :(得分:4)

是的,这是一个坏主意。当您在Text属性中放置非字符串对象时,它将用作内容元素,就像在FlowDocument中一样,因此不像普通的FrameworkElements那样是交互式的。

答案 1 :(得分:1)

您是否尝试过StackPanel?

   <StackPanel Orientation="Horizontal" IsEnabled="{Binding Path=IsEnabledProperty}">
    <Label Content="Test"/>
    <TextBox Text="blah"/>
   </StackPanel>

您的IsEnabledProperty是依赖属性吗?

答案 2 :(得分:0)

您是否确定在viewModel中更新属性IsEnableProperty时会引发PropertyChanged事件?