0

ListBox達成できる画像のコレクションを水平に表示する必要があります。ただし、ここで直面している課題は、選択したアイテム ( )内の画像をクリックまたは選択し、選択した画像をコード ビハインドで取得するときに、選択Imageしたアイテム ( ) をアイテム プロパティにバインドできないことです。ListBox-selectedListBox

以下は私の XAML コードで、それ以降は私のXAML.csコードです。問題を解決するために何か不足している場合はお知らせください。

ありがとう。

<ListBox Grid.Row="1" x:Name="ThumbnailPanel" ItemsSource="{Binding Frames}"
              SelectedItem="{Binding Path=MediaFrame,Mode=TwoWay}"
              ScrollViewer.CanContentScroll="True"
              ScrollViewer.VerticalScrollBarVisibility="Disabled"
              ScrollViewer.HorizontalScrollBarVisibility="Hidden">
        <ListBox.ItemsPanel>
            <ItemsPanelTemplate>
                <UniformGrid Columns="20" Rows="1">
                </UniformGrid>
            </ItemsPanelTemplate>
        </ListBox.ItemsPanel>
    </ListBox>


    public event PropertyChangedEventHandler PropertyChanged;

    public void OnPropertyChanged(string property)
    {
        var propertyChanged = PropertyChanged;
        if (propertyChanged != null)
        {
            propertyChanged(this, new PropertyChangedEventArgs(property));
        }
    }

    public ObservableCollection<Image> Frames { get; set; }

    public Image MediaFrame
    {
        get
        {
            return mediaFrame;
        }
        set
        {
            if (mediaFrame != value)
            {
                mediaFrame = value;
                OnPropertyChanged("MediaFrame");
            }
        }
    }

    private Image mediaFrame;

    if (Frames == null)
            {
                Frames = new ObservableCollection<Image>();

            }

            Frames.Add(
                new Image
                {
                    Source = imageSource,
                    ToolTip = _mediaPlayer.Position,
                    MaxWidth = _mediaPlayer.NaturalVideoWidth,
                    MaxHeight = _mediaPlayer.NaturalVideoHeight,
                    Margin = new Thickness(2)
                });

            ThumbnailPanel.DataContext = Frames;
4

1 に答える 1

0

はっきりしていませんが、書くと

ThumbnailPanel.DataContext = Frames;

それはFrames財産ですか?ItemsSource="{Binding Frames}"では、バインディングはどのように機能しますか?andプロパティDataContextを持つオブジェクトにを設定する必要があると思います。多分:FramesMediaFrame

ThumbnailPanel.DataContext = this;
于 2013-02-05T10:50:38.563 に答える