簡體   English   中英

無法將圖像綁定到列表框並在WPF中獲取所選項目

[英]unable to bind images to listbox and get the selected item in wpf

我需要在可以實現的ListBox中水平顯示圖像集合。 但是,這里面臨的挑戰是,當我單擊或選擇ListBox任何圖像並在代碼隱藏中獲得選定的圖像時,無法將選定的項目( Image )綁定到ListBox-selected項目屬性。

以下是我的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;

還不太清楚,但是當你寫的時候

ThumbnailPanel.DataContext = Frames;

Frames屬性嗎? 那么, ItemsSource="{Binding Frames}"綁定將如何工作? 我猜您需要將DataContext設置為具有FramesMediaFrame屬性的對象。 也許:

ThumbnailPanel.DataContext = this;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM