Ho scritto un MultiValueConverter che controlla se un dato elenco contiene un determinato valore e restituisce true se lo fa. Lo uso per il collegamento alla lista di controllo personalizzata. Ora mi piacerebbe scrivere il metodo ConvertBack in modo che se la casella fosse selezionata, il valore originale sarebbe stato inviato al modello. C'è un modo per accedere ai valori nel metodo ConvertBack?WPF: C'è un modo per ottenere valori originali nel metodo ConvertBack di MultiValueConverter?
XAML:
<ListBox.ItemTemplate>
<HierarchicalDataTemplate>
<CheckBox Content="{Binding Path=Description}">
<CheckBox.IsChecked>
<MultiBinding Converter="{x:Static Classes:ListContainsMultiConverter.Instance}">
<Binding Path="Id" />
<Binding Path="DataContext.ContactTypes" RelativeSource="{RelativeSource AncestorType={x:Type Window}}" />
</MultiBinding>
</CheckBox.IsChecked>
</CheckBox>
</HierarchicalDataTemplate>
</ListBox.ItemTemplate>
ottengo risultati corretti quando sono vincolanti, ma c'è un modo per ottenere l'id legato durante la conversione di nuovo? Quello che vorrei ottenere è che se la casella di controllo è deselezionata, il valore verrà rimosso dall'elenco e se è selezionato, il valore verrà aggiunto all'elenco.
Ho un problema simile in cui uno dei miei collegamenti nella multibinding è un oggetto con un elenco di oggetti che contengono un campo di testo. la multibinding è associata a una delle caselle di testo in base all'altro valore di bind. Ho bisogno della casella di testo per cambiare il testo dell'oggetto su convertBack, ma tutto quello che ho è il nuovo valore, e non il testo dell'oggetto che deve cambiare – JoeSharp