我有一个字符串依赖属性(SearchText),当更新时,需要更新集合依赖属性(结果)。
我收藏DP:从另一个更新一个依赖属性
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>()));
我想这没有运气。我在Results = ....行中放置了一个断点,并且它从未被击中。
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,这将打破对'秒'属性绑定的SetValue,因为将被用来代替SetCurrentValue(见http://stackoverflow.com/问题/ 4230698 /什么最差之间的依赖关系,财产的setValue-setcurrentvalue)。 – Benlitz 2014-05-12 09:42:11
今天是真的,我会给你的。但是,在编写此答案时,.NET Framework 3.5是最新版本,没有SetCurrentValue成员。 (ref:https://msdn.microsoft.com/en-us/library/system.windows.dependencyobject_members(v=vs.90).aspx) 很值得现代化的评论或额外的答案,但恕我直言它不保证否决票。 – 2015-02-14 21:18:32