[英]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.