Tengo una propiedad de dependencia de cadenas (SearchText), cuando se actualiza, necesita actualizar una propiedad de dependencia de colecciones (Resultados).
Mi dp colección:Actualizando una propiedad de dependencia de otra
public IEnumerable<string> Results{
get { return (IEnumerable<string>) GetValue(ResultsProperty); }
set { SetValue(ResultsProperty, value); }
}
public static readonly DependencyProperty ResultsProperty=
DependencyProperty.Register("Results", typeof(IEnumerable<string>), typeof(MainWindowVM), new UIPropertyMetadata(new List<string>()));
He intentado esto sin suerte. puse un punto de interrupción en la línea Results = .... y nunca recibió un golpe.
public string SearchText{
get { return (string) GetValue(SearchTextProperty); }
set {
Results =
from T in Tree.GetPeople(value)
select T.FullName;
SetValue(SearchTextProperty, value);
}
}
public static readonly DependencyProperty SearchTextProperty=
DependencyProperty.Register("SearchText", typeof(string), typeof(MainWindowVM), new UIPropertyMetadata(""));
XAML:
<TextBox DockPanel.Dock="Top" Text="{Binding SearchValue, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
<ListBox DockPanel.Dock="Top" ItemsSource="{Binding NameResults}" SelectedItem="{Binding Search}" />
-1, Esto romperá la unión en la propiedad 'Second' porque FijarValor se utilizará en lugar de SetCurrentValue (ver http://stackoverflow.com/ questions/4230698/whats-the-difference-between-dependency-property-setvalue-setcurrentvalue). – Benlitz
Es cierto hoy, te lo concederé. Sin embargo, en el momento de escribir esta respuesta, .NET Framework 3.5 era la versión más reciente que no tenía un miembro SetCurrentValue. (ref: https://msdn.microsoft.com/en-us/library/system.windows.dependenobjetos_objetos(v=vs.90).aspx) Bien vale la pena un comentario o una respuesta adicional para modernizar, pero en mi humilde opinión no garantiza un voto negativo. –