我已经创建了一个从ListBox派生的自定义控件,并且我有问题将“SelectedItemsList”绑定到它在视图模型中的相应属性。多选择列表框绑定问题
问题:列表框中的所选项目不会将其放入视图模型中绑定的属性中。列表框允许多个选择,但这些都不会进入视图模型中的列表。
MultiSelectListBox:
public class MultiSelectListBox : ListBox
{
public MultiSelectListBox() { }
public static readonly DependencyProperty SelectedItemsListProperty =
DependencyProperty.Register(
"SelectedItemsList",
typeof(IList),
typeof(MultiSelectListBox),
new PropertyMetadata(default(IList)));
public IList SelectedItemsList
{
get { return (IList) GetValue(SelectedItemsListProperty); }
set { SetValue(SelectedItemsListProperty, value); }
}
}
声明中MainWindow.xaml:
<local:MultiSelectListBox
DataContext="{StaticResource viewModel}"
DockPanel.Dock="Left"
Visibility="{Binding IsThailandFinal, Converter={StaticResource BoolToVisConverter}, FallbackValue=Visible}"
ItemsSource="{Binding SelectedOutputtapeList}"
SelectionMode="Multiple"
SelectedItemsList="{Binding SelectedOutputTapes, Mode=TwoWay}"
HorizontalAlignment="Right"
Background="DeepSkyBlue"
Foreground="MidnightBlue"
ScrollViewer.VerticalScrollBarVisibility="Visible"
Height="100"
Width="70"
Margin="5"/>
视图模型(简体):
public class BTLogFrontEndViewModel : ViewModelBase
{
private List<string> selectedOutputTapes;
public BTLogFrontEndViewModel()
{
selectedOutputTapes = new List<string>();
}
public List<string> SelectedOutputTapes
{
get
{
return selectedOutputTapes;
}
set
{
selectedOutputTapes = value;
OnPropertyChanged("SelectedOutputTapes");
}
}
}
您的ObservableCollection的邮政编码是否在Visual Studio的输出窗口中显示任何绑定错误? – 2014-09-24 12:56:53
ObservableCollection是一个.NET集合,无需显示代码。 – kformeck 2014-09-24 13:19:01
我的意思是'SelectedOutputTapes'的声明,而不是ObservableCollection的源代码。另外,“我有问题”是什么意思?关于问题陈述你能更精确吗? – 2014-09-24 13:23:07