wpf DelegateCommand return 不触发
wpf DelegateCommand return not fire
当 UserControl-Initialized 事件绑定到 InitializedCommand 时,我正在使用 Mvvm 模式和视图,如下所示。
<i:Interaction.Triggers>
<i:EventTrigger EventName="Initialized">
<prism:InvokeCommandAction Command="{Binding Path=InitializedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
和 ViewModel 如下。
public DelegateCommand InitializedCommand
{
get
{
SelectedPopupType = PopupTypes.Downloading;
IsShowPopup = true;
return new DelegateCommand(delegate ()
{
*** DoSomething...***
}
}
}
其他事件(已加载、已卸载..)return 部分工作正常但初始化命令 return 不工作(DoSomething未调用)..
不知道是什么原因...
正如事件名称明确指出的那样,Initialized
事件将在您的 Triggers
通过 AttachedProperty
设置之前触发。而 Loaded
事件将起作用,因为它是在分配和加载所有 属性 值后触发的。所以,这行不通。
If you do not need to read element properties, intend to reset properties, and do not need any layout information, Initialized
might be the better event to act upon.
If you need all properties of the element to be available, and you will be setting properties that are likely to reset the layout, Loaded
might be the better event to act upon.
此外,为什么要为 Initialized
事件调用 ICommand
?为什么你不能在你的代码隐藏中有一个 EventHandler
?
当 UserControl-Initialized 事件绑定到 InitializedCommand 时,我正在使用 Mvvm 模式和视图,如下所示。
<i:Interaction.Triggers>
<i:EventTrigger EventName="Initialized">
<prism:InvokeCommandAction Command="{Binding Path=InitializedCommand}" />
</i:EventTrigger>
</i:Interaction.Triggers>
和 ViewModel 如下。
public DelegateCommand InitializedCommand
{
get
{
SelectedPopupType = PopupTypes.Downloading;
IsShowPopup = true;
return new DelegateCommand(delegate ()
{
*** DoSomething...***
}
}
}
其他事件(已加载、已卸载..)return 部分工作正常但初始化命令 return 不工作(DoSomething未调用)..
不知道是什么原因...
正如事件名称明确指出的那样,Initialized
事件将在您的 Triggers
通过 AttachedProperty
设置之前触发。而 Loaded
事件将起作用,因为它是在分配和加载所有 属性 值后触发的。所以,这行不通。
If you do not need to read element properties, intend to reset properties, and do not need any layout information,
Initialized
might be the better event to act upon.If you need all properties of the element to be available, and you will be setting properties that are likely to reset the layout,
Loaded
might be the better event to act upon.
此外,为什么要为 Initialized
事件调用 ICommand
?为什么你不能在你的代码隐藏中有一个 EventHandler
?