簡體   English   中英

命令綁定只能在Designer / VS中使用,而不能在build / release中使用

[英]Command Binding works in designer/VS, but not build/release

我可能在這里忽略了一些顯而易見的事情,但是我現在看不到它的存在。

我在用戶控件(數據網格)上進行了交互,該控件具有綁定到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可以將Command觸發。

但是,當我從Debug或Release文件夾運行時,什么也沒發生。 沒有錯誤,沒有窗口,什么都沒有-據我所知,它不是在構建的應用程序中綁定的嗎?

編輯:同樣要添加的是,列仍然可以從ItemSource加載其數據(使用數據上下文)。

編輯2:如果我將數據網格移出用戶控件,然后直接將其放到選項卡中,它的行為相同。 因此,我認為這與此無關。

編輯3:解決了注釋-好像Costura無法嵌入System.Windows.Interactivity。

您必須添加system.windows.interactivity的引用,然后將其用於EventTrigger

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM