Как определить Команду как StaticResource WPF - PullRequest
0 голосов
/ 30 ноября 2018

Я пытаюсь привязать 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>

1 Ответ

0 голосов
/ 30 ноября 2018

Попробуйте использовать связывание элементов, указав имя элемента, у которого есть DatacContext.

<i:InvokeCommandAction  Command="{Binding ElementName=Window1, Path=DataContext.CommandPropertyName}" />
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...