0

ユーザーコントロールに設定しようとしました:

d:DataContext="{d:DesignData ListItemDemoData.xaml}"

しかし、Visual StudioListItemDemoDataではListItemDemoData.xamlListItemDemoData.

奇妙な、私はそれを間違ったのですか?

4

1 に答える 1

1

コードビハインドでそれを行うことができます。大きな画像を表示するために使用されるユーザーコントロールがあります。私のコントロールの名前は ImageViewer です。次に、画像ソースをバインドする必要があります。そこで、次のような依存関係プロパティを作成しました

    public static readonly DependencyProperty ValueProperty =
       DependencyProperty.Register("ImageSourceValue", typeof(string), typeof(ImageViewer),
       new PropertyMetadata(ValueChanged));

    public string ImageSourceValue
    {
        get { return (string)GetValue(ValueProperty); }
        set { SetValue(ValueProperty, value); }
    }

    /// <summary>
    /// Called when the value of ImageSourceValue is changed or set.
    /// </summary>
    public static void ValueChanged(DependencyObject sender, DependencyPropertyChangedEventArgs args)
    {
        // Get out of a static and into the instance ASAP.
        ImageViewer control = (ImageViewer)sender;
        control.ValueChanged();

    }

    private void ValueChanged()
    {
        //The value of ImageSourceValue is set at the time calling user control from your page.
        this.ImageSource = ImageSourceValue;

        this.DataContext = this;
    }

    public string ImageSource { get; set; }

文字列画像パスをビットマップ画像オブジェクトに変換する画像コントロールに値がバインドされているときに、コンバーターを使用しました。string ImageSource は BitmapImage 型に変更できます。ImageSourceValue の値が ImageSource に割り当てられると、変換を行うことができます。

于 2013-04-22T11:46:10.120 に答える