0

コンテンツとしてラベルとテキストボックスを含む単純なテキストブロックがあります。テキストブロックの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を使用するのは悪い考えですか?

4

3 に答える 3

4

はい、それは悪い考えです。文字列以外のオブジェクトをTextプロパティに配置すると、FlowDocumentのようにコンテンツ要素として使用されるため、通常のFrameworkElementsのようにインタラクティブではありません。

于 2010-10-26T19:03:45.867 に答える
1

代わりにStackPanelを試しましたか?

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

IsEnabledPropertyは依存関係プロパティですか?

于 2010-10-26T19:01:58.290 に答える
0

viewModelでプロパティを更新するときに、プロパティIsEnablePropertyのPropertyChangedイベントが発生することを確認しますか?

于 2010-10-27T07:29:18.980 に答える