On(propertyname)ValueChangedを使用して辞書から項目を読み取り、そのコントロールのパラメータを設定するカスタムコントロールがあります。データ型の外でOn..PropertyValueChangedが実行されない
また、データバインドされたコントロールだけでなく、スタンドアロンとしてこのコントロールを使用したいと思います。
OnPropertyValueChangedはどのようにデータセット内でのみ動作しますか?
依存関係のプロパティはxamlからしか機能しませんが、コンテナクラスのプロパティからバインドする必要がありますか?私はそれが依存関係プロパティが変更され実行される結合からスプライトを追加するときに、私のMainPage.xamlをしてmainpage.xaml.cs
testSprites.Add("idle", idlesprite); // a dictionary of a custom sprite object
testSprites.Add("highlighted", highlightedsprite);
testSprites.Add("selected", selectedsprite);
testString = "this is a test"; // this property is picked up by the binding.
で
<local:spriteToggleButton x:Name="testButton" HorizontalAlignment="Center" Text="{Binding testString, ElementName=mainPage}" Correct="true" Margin="93,561,93,63" Grid.Row="1" Sprites="{Binding testSprites, ElementName=mainPage}" />
を
を(自分の質問に答えたかもしれません)コントロールが使用されているときにspriteToggleButtonクラス内のプロパティが更新されないスタンドアロン
これは私の依存関係プロパティの変更コールバック
private static void OnSpritesPropertyValueChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
var control = d as spriteToggleButton;
var sprites = e.NewValue as Dictionary<string, Quiz.Sprite>;
control.idleSprite = sprites["idle"];
control.selectedSprite = sprites["selected"];
control.highlightedSprite = sprites["highlighted"];
}
これは私のspriteToggleButton
<local:spriteView x:Name="Idle" Width="294" Height="57" HorizontalAlignment="Center" Sprite="{Binding idleSprite, ElementName=toggleSpriteControl}" />
...
内のスプライトは、あなたがidleSprite
、selectedSprite
とspriteToggleButton
のhighlightedSprite
を実装していない私は非常に疑わしいまた、そのコントロールの依存関係プロパティ
サンプルコードを少し参考にしてください。 – AnthonyWJones
これが役に立ちます。 –
OnSpritesPropertyChangedは、コレクションの内容が変更されたときではなく、Spritesプロパティ自体が変更されたときにのみ発生します。あなたは働いていない正確なコードと期待される結果を教えてください。 –