0
A
回答
1
這是一個很好的例子來展示MVVM方法。下面的代碼將做的工作:
XAML
<Window x:Class="simplest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:simplest"
mc:Ignorable="d"
Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
<local:MainWindowViewModel />
</Window.DataContext>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition />
</Grid.RowDefinitions>
<TextBox x:Name="outputFolder" Height="30" Margin="5" Grid.Column="0" Text="{Binding Filter}"/>
<ComboBox Height="30" Grid.Column="1" Margin="5" ItemsSource="{Binding Images}">
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<Image MaxWidth="64" MaxHeight="64" Source="{Binding}" />
<TextBlock Text="{Binding}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
</Window>
C#
class MainWindowViewModel : INotifyPropertyChanged
{
private string _filter;
private ObservableCollection<string> _images = new ObservableCollection<string>();
private readonly string _filesSearchPath = "d:\\";
public MainWindowViewModel()
{
Filter = "*.jpg";
}
public string Filter
{
get
{
return _filter;
}
set
{
_filter = value;
OnPropertyChanged();
RefreshImagesCollection();
}
}
public ObservableCollection<string> Images
{
get
{
return _images;
}
}
private void RefreshImagesCollection()
{
_images.Clear();
foreach (var fileName in Directory.GetFiles(_filesSearchPath, _filter))
{
_images.Add(fileName);
}
}
private void OnPropertyChanged([CallerMemberName] string name = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(name));
}
public event PropertyChangedEventHandler PropertyChanged;
}
1
ItemTemplate和ItemSource是您需要設置的屬性。 ItemTemplate應指向Datatemplate和ItemSource以收集字符串(圖像路徑)。 This鏈接將幫助你。
相關問題
- 1. Combobox與JPEG圖像
- 2. WWF項目比.NET中的典型項目更有用嗎?
- 3. Combobox與選擇項目的宏
- 4. Combobox顯示項目
- 5. Combobox項目樣式
- 6. WPF中的ComboBox項目圖像的MouseOver問題
- 7. Combobox與圖像 - 傳遞值drawItem事件
- 8. WWF或WPF的流程圖?
- 9. c#combobox顯示arraylist項目
- 10. C#Combobox不顯示項目
- 11. ComboBox中的只讀項目
- 12. Combobox綁定和空項目
- 13. 捕獲ComboBox項目單擊
- 14. Combobox添加項目問題
- 15. WPF Combobox - 預選項目
- 16. Combobox顯示所有項目
- 17. ComboBox項目未加載WPF
- 18. acumatica進口項目與圖像API
- 19. select2 combobox與現有選項
- 20. 一個ComboBox的項目如何由另一個ComboBox的選定項目確定?
- 21. 圖像在Combobox中消失
- 22. Combobox圖像背景重疊
- 23. Tabbar項目圖像問題
- 24. Eclipse項目共享圖像?
- 25. 圖像和列表項目
- 26. Combobox顯示和隱藏WPF中的ComboBox項目
- 27. 將ComboBox Box項目綁定到另一個Combobox的SelectedItem上
- 28. WPF與不同的選定項目和文本Combobox
- 29. MVVM Databinding Datagrid與Combobox /不同項目來源
- 30. 爲什麼Combobox項目與組合框不成比例?