命令绑定在designer / VS中工作,但不在构建/发布中工作

时间:2014-06-23 10:08:32

标签: c# wpf mvvm simple-mvvm

我可能会忽略一些明显的东西,但我现在无法看到它的生命。

我在用户控件(数据网格)上进行了交互,其中项目源绑定到ICollectionView,但DataContext是从父窗口继承的:

<DataGrid Margin="0" ItemsSource="{Binding ItemsView}" AutoGenerateColumns="False" IsReadOnly="True"
          SelectedItem="{Binding SelectedItem, Mode=TwoWay}">
    <DataGrid.Columns>
        ....
    </DataGrid.Columns>
    <i:Interaction.Triggers>
        <i:EventTrigger EventName="MouseDoubleClick">
            <i:InvokeCommandAction Command="{Binding OnNotifyPeg}"/>
        </i:EventTrigger>
    </i:Interaction.Triggers>
</DataGrid>

DataContext继承自父窗口,该窗口具有选项卡视图:

<Window x:Class="ConfigBrowser.Views.ConfigView"
    DataContext="{Binding ConfigViewModel, Source={StaticResource Locator}}">
    <Grid Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}">
        <TabControl Height="Auto" Width="Auto"
                    Background="{DynamicResource {x:Static SystemColors.ControlLightBrushKey}}">
            <TabItem Header="Overview">
                <controls:Overview/>
            </TabItem>

现在,OnNotifyPeg命令只打开一个窗口(通过服务,还有一个消息框,现在要调试)

public ICommand OnNotifyPeg
{
    get { return new DelegateCommand(NotifyPeg); }

}

public void NotifyPeg()
{
    MessageBox.Show("Notify peg", "Clicked");
    _detailService.ViewPeg(SelectedItem);
}

虽然在Visual Studio中运行,但它运行正常 - uc会触发命令。

但是当我从Debug或Release文件夹运行时,没有任何反应。没有错误,没有窗口,没有 - 据我所知,它没有绑定在构建的应用程序中?

编辑:另外,要添加,列仍然可以从ItemSource(使用数据上下文)加载数据。

编辑2:如果我将数据网格移出用户控件并直接将其放入选项卡,则它会执行相同的操作。所以我不认为这与此有关。

编辑3:在评论中解决 - 看起来Costura在嵌入System.Windows.Interactivity时失败。

1 个答案:

答案 0 :(得分:0)

您必须添加system.windows.interactivity的引用,然后将其用于EventTrigger