私はSilverlightプロジェクトを持っています。私はUserControlがプロジェクトにあります。このUserControlのIsEnabledは動的に設定され、ほとんどの場合falseに設定されます。Silverlight XamlコントロールのIsEnabledプロパティをオーバーライドします
このUserControlでは、いくつかのネストされたグリッドがあり、すべてのグリッドはいつものように親(UserControl)からIsEnableを継承します。
ただし、このUserControl内のグリッドの1つでは、この機能を継承しません。私はそれを常に真にしたい。 IsEnabled機能をオーバーライドする方法はありますか?
私が試みたのは、ContentControlでラップし、IsEnabledをTrueに設定しましたが、動作しませんでした。
<ContentControl IsEnabled="True">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Auto" Margin="0,0,0,0" BorderThickness="0">
<HistoryControls:EditableMAMGridContainer StateInfo="{Binding Path=StateInfo, Source={StaticResource Evm}}" />
</ScrollViewer>
</ContentControl>
ルートはこのScrollviewerのUserControlであり、複数の親と祖父母があります。それは非常に深いです。
EDIT:ユーザーコントロールがFalseに設定し、ContentControlには真(上記のコードの逆の場合)を設定した場合 このコードの作品が、その逆は
<UserControl IsEnabled="True">
.
.
<ContentControl IsEnabled="False">
...
動作しないが、その後動作しません。
この目的は何ですか?親コントロールを無効にすると子コントロールのすべてのメッセージがブロックされ、入力に反応できなくなることが分かっていましたか? 状態を使用して必要性を達成できますか?親コントロールが無効のように見えるときに状態を「ブロックする」ようにしますか? – lerthe61
はい、私は知っている、実行時に、私は無効にする必要がありますいくつかの条件に応じて。しかし、データグリッドでは、このuserControlから独立して常に有効にしたいと考えています。 – Creed