【发布时间】:2020-03-15 20:41:24
【问题描述】:
我正在学习如何使用 MVVM 以及如何在 WPF 应用程序中绑定数据。我以这种方式在 XAML 文件中创建了一个自定义 CheckedListBox:
<ListBox x:Name="materialsListBox" ItemsSource="{Binding CustomCheckBox}">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox IsChecked="{Binding Path=IsChecked, UpdateSourceTrigger=PropertyChanged, Mode=OneWayToSource}" Content="{Binding Item}" />
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
我还希望为我检查的每个 CheckBox 动态显示一个图像。我知道我需要使用 Binding 和 UpdateSourceTrigger 属性,但我不确定如何实现这一点。 我应该在此处添加什么以便我的应用执行我想要的操作?
<Image HorizontalAlignment="Left" Height="100" Margin="432,146,0,0" VerticalAlignment="Top" Width="100"/>
这是我的视图模型 C# 代码的一部分:
public class MainViewModel : ViewModelBase
{
private ObservableCollection<CheckedListItem<string>> _customCheckBox;
public ObservableCollection<CheckedListItem<string>> CustomCheckBox
{
set
{
_customCheckBox = value;
OnPropertyChanged();
}
get { return _customCheckBox; }
}
public class CheckedListItem<T> : ViewModelBase
{
private bool _isChecked;
private T _item;
public CheckedListItem()
{
}
public CheckedListItem(T item, bool isChecked = false)
{
item = _item;
isChecked = _isChecked;
}
public T Item
{
set
{
_item = value;
OnPropertyChanged();
}
get { return _item; }
}
public bool IsChecked
{
set
{
_isChecked = value;
OnPropertyChanged();
}
get { return _isChecked; }
}
}
...
感谢您的任何建议。
【问题讨论】:
-
您希望图像“动态显示”在哪里?
标签: c# wpf mvvm data-binding eventtrigger