c# - 如何将命令定义为 StaticResource WPF
问题描述
我正在尝试将 a 绑定到 a 中定义的命令,DataContext
但是我不能使用,因为列不是层次结构的一部分,所以我当前的解决方案是在中定义命令并引用它。xaml
DataGridColumn
RelativeSource
ResourceDictionary
但是我的问题是我似乎找不到如何在 中定义一个ICommand
,ResourceDictionary
我该怎么做?或者任何其他方式来访问我的DataContext
命令DataGridColumn
?
xmlns:input="clr-namespace:System.Windows.Input;assembly=System"
...
<UserControl.Resources>
<ResourceDictionary>
<input:ICommand x:Key="propertyChangedEvent">
"{Binding PropertyChangedEvent}"
</input:ICommand>
</ResourceDictionary>
</UserControl.Resources>
...
<DataGridTemplateColumn Header="Notes" MinWidth="350" Width="*" IsReadOnly="False">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<StackPanel Margin="1">
<TextBox Text="{Binding Notes, UpdateSourceTrigger=LostFocus}" BorderThickness="0" AcceptsReturn="True" TextWrapping="Wrap" >
<i:Interaction.Triggers >
<i:EventTrigger EventName="TextChanged">
<i:InvokeCommandAction Command="{StaticResource propertyChangedEvent}"/>
</i:EventTrigger>
</i:Interaction.Triggers>
</TextBox>
</StackPanel>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
解决方案
尝试通过提供具有DatacContext
.
<i:InvokeCommandAction Command="{Binding ElementName=Window1, Path=DataContext.CommandPropertyName}" />
推荐阅读
- python - pyclean 和 py3clean 的区别
- c++ - 为什么模板参数解包有时不适用于 std::function?
- linux - 由于缺少 Build.include 文件,在 Ubuntu 20.04 中为 objtool 制作失败?
- c# - 当应用程序在不同用户下运行时,如何在 Linux 上远程调试 C#/.Net 应用程序?
- powerpoint - 如何确定单元格是否在 PowerPoint 中垂直合并?
- webrtc - WebRTC 在本地工作,但不能通过 Internet
- android - 从 RecyclerView Adapter Android 隐藏和显示多个视图持有者
- javascript - 如何更改背景图像
- java - 滚动 Listiew 时图像消失(Android Studio)
- python - python堆积面积图显示区域之间有奇怪的边界