我需要在ListBox
中水平显示一组图像,这是我可以实现的。但是,我面临的挑战是当我点击或选择Image
中的任何图片并获取所选内容时,无法将所选项目ListBox-selected
)绑定到ListBox
项目属性代码隐藏中的图像。
以下是我的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;
答案 0 :(得分:0)
目前还不是很清楚,但是当你写作
时ThumbnailPanel.DataContext = Frames;
是Frames
属性? ItemsSource="{Binding Frames}"
绑定如何工作呢?我想你需要将DataContext
设置为具有Frames
和MediaFrame
属性的对象。也许:
ThumbnailPanel.DataContext = this;