UI 对象,位于 XAML 树的同一级别,作为 CommandParameter
我有一个 XAML 树,如下所示:
<Window>
<Grid>
<DockPanel>
<DataGrid>
<DataGrid.Resources>
<CheckBox Command="{Binding Command}" CommandParameter="??" />
</DataGrid.Resources>
</DataGrid>
<StackPanel>
<ChartLegend>
</ChartLegend>
<DataChart>
</DataChart>
</stackPanel>
</DockPanel>
</Grid>
</Window>
我希望将 DataChart
对象作为 ViewModel
上的 Command
上的 CommandParameter
数据网格
。
我的发现:
我将 DockPanel
对象作为 CommandParameter
获取,然后我必须应用方法 FindName("")
来获取 数据图表
。并做进一步的修改。
但我想要直接使用 DataChart
对象,以避免 TypeCasting
或在树中搜索。
I have an XAML tree as follows:
<Window>
<Grid>
<DockPanel>
<DataGrid>
<DataGrid.Resources>
<CheckBox Command="{Binding Command}" CommandParameter="??" />
</DataGrid.Resources>
</DataGrid>
<StackPanel>
<ChartLegend>
</ChartLegend>
<DataChart>
</DataChart>
</stackPanel>
</DockPanel>
</Grid>
</Window>
I want to have DataChart
object as CommandParameter
on ViewModel
from a Command
on DataGrid
.
My Findings:
I'm getting DockPanel
object as CommandParameter
, then I have to apply method FindName("")
to get the DataChart
. And do further modifications.
But I want the DataChart
object directly, to avoid TypeCasting
or searching down the Tree.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
您可以将数据图表保留为
DockPanel
资源中的命名资源,并使用静态资源绑定到命令参数。然后使用ContentControl
托管它。像这样...
希望您不会使用 same
MyDataChart
托管到另一个区域(因为这会导致“可视树父级断开连接”错误)。尽管我必须问你这个问题...为什么你的
DataGrid
资源中有一个孤独的CheckBox
?此外,您和我的解决方案也会破坏 MVVM,因为我们向视图模型提供 UI 控件(图表控件)。
You can keep datachart as a named resource in your
DockPanel
resources and use static resource binding to command parameter. Then useContentControl
to host it.like this...
Hoping that you wont use same
MyDataChart
to host to another area (as that would result in "visual tree parent disconnect" error).Although I must ask you this... why is there a lonely
CheckBox
in yourDataGrid
resources?Also your's and mine solution breaks MVVM because we are supplying a UI control (Chart control) to a View Model.