Я использую DropDownButton из WPFToolkit для отображения небольшого редактора, содержащего кнопку, которая используется для очистки полей редактора с помощью простого метода в виртуальной машине. Метод нужно только вызвать, и нет никаких параметров, которые должны быть переданы ему.
Основная проблема заключается в том, что DropDownButton использует всплывающее окно для отображения своего DropDownContent (редактора), а всплывающее окно находится на другом VisualTree. Я не могу достичь исходного дерева, чтобы вызвать метод с помощью Action.TargetWithoutContext.
Я видел решения для такого рода проблем, но в основном вокруг ContextMenus и использования
Action.TargetWithoutContext="{Binding Path=PlacementTarget.Tag, RelativeSource={RelativeSource Self}}"
Я попытался изменить путь привязки TargetWithoutContext на родительский DropdownButton (конечно же, назвав их), попытался использовать AncestorType и другие RelativeSources, но мои знания в Caliburn.Micro или отладка подобных проблем, к сожалению, недостаточно обширны. чтобы решить эту проблему.
Вид, без каких-либо не относящихся к делу элементов управления и стиля:
<ListView x:Name="FIS"
ItemsSource="{Binding}"
SelectedItem="{Binding Path=FISSelected, Mode=TwoWay}"
dd:DragDrop.IsDragSource="True">
<ListView.View>
<GridView>
<GridViewColumn Header="ColumnHeader">
<GridViewColumn.CellTemplate>
<DataTemplate>
<wpfTool:DropDownButton>
<wpfTool:DropDownButton.Content>
<TextBlock Text="{Binding}">
</wpfTool:DropDownButton.Content>
<wpfTool:DropDownButton.DropDownContent>
<StackPanel>
<Label/>
<DockPanel>
<Button x:Name="ClearFields" Content="Clear"
cal:Message.Attach="[Event Click] = [Action Clear]"
cal:Action.TargetWithoutContext="???"/>
</DockPanel>
</StackPanel>
</wpfTool:DropDownButton.DropDownContent>
</wpfTool:DropDownButton>
</DataTemplate>
</GridViewColumn.CellTemplate>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Пока я получаю System.Exception: «Не найдена цель для метода INDClear.» Ошибка при вызове метода:
System.Windows.Data Ошибка: 4: не удается найти источник для привязки со ссылкой [параметры ссылки TargetWithoutContext] .
Произошло необработанное исключение типа «System.Exception» в WindowsBase.dll
Для метода Clear цель не найдена.