将第三方对象作为命令参数传递

时间:2018-03-29 13:21:17

标签: c# wpf mvvm

我在我的XAML中使用第三方树元素,我想从中添加元素到我自己的树控件中。这是通过一个绑定到Command" TransferClick"的按钮完成的 现在要从第三方树控件获取元素,我需要理想地将它作为命令参数传递,这是我被卡住的地方。

我的XAML看起来像这样:

<Window>
    <Window.DataContext>
        <this:MeasurementConfig />
    </Window.DataContext>
    <Grid>
        <SystemStorageUI:StorageChannelAndAliasBrowser x:Name="sdfBrowser"/>
        <TreeView x:Name="fileTree"/>
        <Button x:Name="trnsfrButton"
                Command="{Binding TransferClick}"
                CommandParameter="{Binding}"/>
    </Grid>
</Window>

现在,当我使用CommandParameter="{Binding}"时,我在&#34; Execute&#34;中得到了一个MeasurementConfig类型的对象。我的RelayCommand : ICommand课程的方法。这是有意义的,因为它是我的DataContext 当我使用CommandParameter="{Binding sdfBrowser}"时,我确定为空。

如何通过&#34; sdfBrowser&#34;对象?

2 个答案:

答案 0 :(得分:0)

您可以在窗口标记中设置窗口名称,并通过CommandParameter="{Binding ElementName=YourWindowName}"将窗口作为参数传递。如果您只想要视图的特定属性,则可以在视图中实现与此特定属性的接口,而不是如上所述在CommandParameter中的绑定窗口,但在viewModel中将接口作为参数。

答案 1 :(得分:0)

似乎缺少ElementName关键字:
CommandParameter =“{Binding ElementName = sdfBrowser}”工作。