2
我有一個WPF中的SelectionMode設置爲多個列表框,並可以多選列表框中的項目。但是,SelectedItem沒有更新它綁定的Observable集合。將列表框SelectedItem綁定到Observable集合?
有沒有辦法將多個選定的項目從ListBox綁定到Observable集合?
我有一個WPF中的SelectionMode設置爲多個列表框,並可以多選列表框中的項目。但是,SelectedItem沒有更新它綁定的Observable集合。將列表框SelectedItem綁定到Observable集合?
有沒有辦法將多個選定的項目從ListBox綁定到Observable集合?
我不知道mvvm這樣做的方式, 我有一個工作解決方案,包含mvvm &代碼隱藏。
代碼隱藏
private void lstbox_SelectionChanged_1(object sender, SelectionChangedEventArgs e)
{
var listBox = sender as ListBox;
if (listBox == null) return;
var viewModel = listBox.DataContext as Window1ViewModel;
if (viewModel == null) return;
viewModel.ListOfSelectedItems.Clear();
foreach (Window1ViewModel.States item in listBox.SelectedItems)
{
viewModel.ListOfSelectedItems.Add(item);
}
}
視圖模型
private ObservableCollection<States> _listofselecteditems;
public ObservableCollection<States> ListOfSelectedItems
{
get
{
return _listofselecteditems;
}
set
{
_listofselecteditems = value;
RaisePropertyChanged(() => ListOfSelectedItems);
}
}
的XAML
<ListBox x:Name="lstbox"
SelectionChanged="lstbox_SelectionChanged_1"
ItemsSource="{Binding StatesList,Mode=TwoWay}"
SelectionMode="Multiple" >
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<CheckBox
IsChecked="{Binding Path=IsSelected,Mode=TwoWay}"
Content="{Binding StateName}" />
<TextBox Margin="8,0,0,0" Text="{Binding SOmeProperty}" IsEnabled="{Binding Path=IsSelected}"/>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
http://stackoverflow.com/questions/803216/managing-multiple-的可能重複選擇與 - MVVM – Will 2010-05-06 12:43:12