0

バインドする必要がある 2 つのプロパティがあります。1 つは Value で、UserControl のプロパティで、2 つ目はイメージ要素のプロパティです。イメージ要素は Window 内にあります。Window はコード ビハインド (UserControl) で宣言されています。

画像 src とプロパティ Value の間の適切なバインディングを有効にするには、何を追加する必要がありますか。コードを以下に示します。

<UserControl x:Class="nnnn">

<UserControl.Resources>
    <propSheet:BitmapConverter x:Key="bitmapConverter" />

    <Window x:Key="imagePopup"
            Width="640"
            Height="480">
        <Grid Background="LightGray">
            <Image Grid.Row="0" Source="{Binding Path=Value, Converter={StaticResource bitmapConverter}}" />

            <TextBlock Text="{Binding Path=Value}"></TextBlock>

            <Button Grid.Row="1"
                    Width="25"
                    HorizontalAlignment="Left"
                    VerticalAlignment="Bottom"
                    Click="OpenFile_Click">
                ...
            </Button>
        </Grid>
    </Window>

</UserControl.Resources>

<Grid>
    <Button Click="ViewImage_Click">View Image</Button>

</Grid>

4

1 に答える 1

1

表示する前に、ウィンドウのDataContextプロパティを UserControl インスタンスに設定する必要があります。

private void ViewImage_Click(object sender, RoutedEventArgs e)
{
    var window = Resources["imagePopup"] as Window;
    window.DataContext = this; // the UserControl
    window.Show();
}
于 2013-05-07T17:31:28.693 に答える