私は比較的フレッシュで、XAMLを発見しています。リストボックスから選択したアイテムのみを新しいリストに表示
XAMLにはListBox Name="EmployeeTitles"
が1つあります(下記参照)。問題を具体的に示す目的で、ObservableCollection<Employee>
というDataContext = employees
があります。
<ListBox Name="EmployeeTitles"
ItemsSource="{Binding}"
SelectionMode="Extended">
<ListBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<ToggleButton IsChecked="{Binding IsSelected, Mode=TwoWay, RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListBoxItem}}}">
<!--StackPanel will have more items-->
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Title}"/>
</StackPanel>
</ToggleButton>
</StackPanel>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
次のように私の「背後にあるコード」クラススニペットが見えます:
private string _title;
public string Title
{
get { return _title; }
set
{
_title = value;
OnPropertyChanged();
}
}
private bool _isSelected;
public bool IsSelected
{
get
{
return _isSelected;
}
set
{
_isSelected = value;
OnPropertyChanged();
}
}
私は別のコントロールで選択した項目を表示したいと思います。たとえば、選択した項目のみを表示するリストがあります。 XAMLでIsChecked="True"
のアイテムだけを表示したいと思っているとマークすることはできますか? IsSelected
のプロパティが変更されるたびに、選択された項目だけを格納して「コードビハインド」で更新する別のObservableCollectionを持つことができますが、オーバーヘッドのように思えますし、XAMLでそれを行う方法があるはずです。
あなたは 'ListBox.SelectedItems'をバインドすることはできません。 –
要素バインディングを使用することができます..私の完全なコードを試してください.. –
私は修正されます。それはとても涼しいです。あなたはまだ何とかそれらをビューモデルに戻さなければなりません。 –