我想创建一个调试窗口,允许我们在运行时编辑应用程序中各种对象的属性。例如,这将允许我们在我们的应用程序中调整某些启发式规则的阈值,而无需重建和/或重新启动应用程序。
目标是告诉调试窗口启用编辑对象的某些属性。然后窗口获取属性的值,保持对对象的弱引用并显示适当的数据模板(基于值的类型),以使我们能够编辑值并在需要时将新值应用于对象。
问题:
正确应用数据模板,并显示TextBox
中每个调试项的值。但是,Value
绑定到的每个DebugItem
的{{1}}属性从不更新。我在该物业的二传手上设置了一个断点;断点永远不会被触发。
以下是我目前的设置:
TextBox
个DebugItems
个对象集合。DebugItem
都有一个DebugItem
类型的Value
属性。object
属性始终包含字符串。Value
类型和DebugItem
类型创建了数据模板。System:String
集合的ListBox
,并使用上面定义的数据模板在ContentPresenter中显示DebugItems
。该数据模板中的DebugItem
也绑定到TextBox
,以便我们可以使用上面定义的另一个Value
数据模板编辑字符串值 * 的* 我的印象是,这与编辑无效的原因有关。通过,我可能会弄错。
窗口的相关部分:
System:String
我的数据模板:
(特别感兴趣的是内部<Grid Background="#CECECE">
<ScrollViewer VerticalScrollBarVisibility="Auto" HorizontalScrollBarVisibility="Disabled">
<ItemsControl ItemsSource="{Binding DebugItems}" Background="Transparent" BorderBrush="Transparent" />
</ScrollViewer>
</Grid>
及其嵌入式ContentPresenter
数据模板。)
System:String
有什么想法吗?