[英]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
設置為具有Frames
和MediaFrame
屬性的對象。 也許:
ThumbnailPanel.DataContext = this;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.