将选定的列表项传递给wpf控件

时间:2016-08-30 15:47:56

标签: c# wpf

如何让我的用户控制知道在主窗口的列表视图控件中选择了哪个项?

在下图中,当我将项目添加到下方列表视图时,我希望能够选择它们并拥有右侧的控件,并使用所选项目的详细信息进行更新 enter image description here

主窗口绑定到MainViewModel代码。当我点击+按钮时,WO#项目被添加到底部列表视图中。列表视图显示服务项,其属性使用右侧窗口设置。

右侧是自定义控件

    <TabItem Header="Service Items">
        <controls:ServiceItemsControl />
    </TabItem>

我创建了一个ServiceItemsViewModel,它与控件一起使用并将控件的DataContext设置为它。

<UserControl.Resources>
    <converters:PrettyLaborDuration x:Key="PrettyLaborDuration" />
    <vm:ServiceItemsViewModel x:Key="vm" />
</UserControl.Resources>

<Grid Background="#FFFFFFFF" DataContext="{StaticResource vm}">

这是控件背后的ViewModel

enter image description here

在MainViewModel中,这是我用来访问所选项目的内容

private Service selectedServiceItem;
public Service SelectedServiceItem
{
    get { return selectedServiceItem; }
    set
    {
        //Labor.Time = (selectedServiceItem as Labor).Time;
        selectedServiceItem = value;
        RaisePropertyChanged(nameof(Labor));
    }
}

劳工来自服务。

在最基本的术语中,我要做的是在控件中设置一个变量。有点像这样:

<controls:ServiceItemsControl Labor="{Binding SelectedServiceItem}" />

因此,工党成为我在ServiceItemsViewModel

中使用的工具

1 个答案:

答案 0 :(得分:0)

通常,您可以通过将控件上的选定项目数据绑定到模型上的属性来执行此操作。您还没有为我提供足够的代码给您一个确切的示例,但是以绑定值的相同方式,您可以绑定selectedValues,这样您只需查看模型即可查看所选值。

相关问题