私はxamlとc#でUWPプロジェクトに取り組んでいます。右の画像のスタックパネルをクリックすると画像がクリックされ、関連する大きな画像がスタックパネルの左側に表示されます。クリック時にUIが正しい画像に更新されるようにするにはどうすればよいですか?
大きな画像は最初に、ページを読み込むときにスタックパネルの最初の「小さい」画像に関連する「大きな」画像に設定されますが、スタックパネルの他の小さな画像のいずれかをクリックすると、更新されません。
全体がフライアウト内に配置されたデータテンプレートです。 「大」の画像に関連するXAMLはここにある:
<Border Background="White" Grid.Row="2">
<Image Stretch="Uniform">
<Image.Source>
<BitmapImage UriSource="{Binding SelectedImage}" />
</Image.Source>
</Image>
</Border>
小さな画像をクリックすると、その画像のための「タップ」メソッドをトリガーし、その方法は次のとおりです。
private void Image_Tapped(object sender, TappedRoutedEventArgs e)
{
var img = ((Windows.UI.Xaml.Controls.Image)sender).DataContext as obj
img.FlyoutContent.SelectedImage = new Uri(img.relatedPath);
}
私は上記のコードを使用して画像を最初に設定してください。小さな画像をクリックすると大きな画像が変わることはありません。
デバッガで、stackpanelの小さな画像をクリックすると、 "image tapped"メソッドが壊れてしまい、URIが正しく更新されていてバインディングエラーがないことがわかります。 UIは決して変更されません。
私には何が欠けていますか?
は、 ザック
をいただき、ありがとうございます*サイドノート:「objが」カスタムクラスのちょうど作られた名前です。
あなたはおそらく既に画像を示しクリックした画像、ソース設定されているようですが、少し見えます。正しい画像の画像ソースを変更してもよろしいですか? –
あなたが何を求めているのか分かりません。大きな画像に同じURIを単純に再割り当てするかどうか尋ねていますか? – zachboy82
参照を取得している正しいDataContextオブジェクトかどうかを確認しています。 SelectedImageのパスは、変更する前と変更していますか? –