我有一个返回到我的视图模型的 SearchResponse 类。
public class SearchResponse
{
public ICollection<SearchResult> Results { get; private set; }
public string OriginalSearchTerm { get; private set; }
public TimeSpan TimeTaken { get; private set; }
public SearchResponse(ICollection<SearchResult> results, string originalSearchTerm, TimeSpan timeTaken)
{
Results = results;
OriginalSearchTerm = originalSearchTerm;
TimeTaken = timeTaken;
}
}
SearchResponse.Results
列表框与包含缩略图图像的每个项目绑定。SearchResult
看起来像这样:
public class SearchResult
{
public string Title { get; set; }
public string Description { get; set; }
public string Path { get; set; }
public ICollection<ThumbnailImage> ThumbnailPaths { get; set; }
public SearchResult()
{
}
public SearchResult(string title, string description, string path, ICollection<ThumbnailImage> thumbnailPaths)
{
Title = title;
Description = description;
Path = path;
ThumbnailPaths = thumbnailPaths;
}
}
这是ThumbnailImage
(ThumbnailSize 是一个枚举):
public class ThumbnailImage
{
public int Id { get; set; }
public ThumbnailSize ThumbnailSize { get; set; }
public string Path { get; set; }
public ThumbnailImage()
{
}
public ThumbnailImage(ThumbnailSize thumbnailSize, string path)
{
ThumbnailSize = thumbnailSize;
Path = path;
}
}
最后,我有一个绑定到缩略图大小枚举的组合框,目的是当用户选择一个大小时,搜索结果中的缩略图图像会立即相应地发生变化。因此,当发生这种情况时,我需要查询ICollection<ThumbnailImage>
正确的文件路径,更新图像宽度和高度(每个缩略图大小的固定宽度/高度)并将更改应用于整个结果列表。
<ComboBox DockPanel.Dock="Right"
ItemsSource="{Binding Source={StaticResource ThumbnailSizesFromEnum}}"
SelectedItem="{Binding CurrentThumbnailSize}">
</ComboBox>
CurrentThumbnail
如上所示,我有一个有效的绑定属性。
任何人都可以提出最好的(或至少是好的)方法来解决这个问题。目前,我只是在阅读太多试图找到解决方案时感到头疼。我想知道我是否应该使用命令、值转换器或 StyleTrigger,但无论哪种方式我都需要一些指针。
谢谢。