Fix compiled binding errors for CommandParameter on Button\n\nUse ancestor DataContext commands and bind parameters directly to item properties.\nResolves: Unable to resolve property 'VariableName' and 'FunctionName' on System.Object in MainView.axaml (lines 45 and 80).

This commit is contained in:
Codex CLI 2025-08-27 03:43:19 -05:00
commit 7a1638ea40

View file

@ -38,14 +38,9 @@
<DataTemplate x:DataType="m:VariableItem">
<Button Background="Transparent" BorderThickness="0" Padding="8" MinHeight="44"
AutomationProperties.Name="Insert variable"
Tag="{Binding}"
DataContext="{Binding $parent[UserControl].DataContext}"
x:DataType="vm:MainViewModel"
Command="{Binding InsertVariableCommand}"
CommandParameter="{Binding Tag.VariableName, RelativeSource={RelativeSource Self}}">
<Grid ColumnDefinitions="Auto,*,Auto"
DataContext="{Binding Tag, RelativeSource={RelativeSource AncestorType=Button}}"
x:DataType="m:VariableItem">
Command="{Binding DataContext.InsertVariableCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding VariableName}">
<Grid ColumnDefinitions="Auto,*,Auto">
<TextBlock Grid.Column="0" FontFamily="{StaticResource MDI}"
FontSize="{DynamicResource IconSizeM}" Text="{Binding Icon}" VerticalAlignment="Center" Margin="0,0,8,0" />
<TextBlock Grid.Column="1" Text="{Binding VariableName}" FontWeight="Bold" VerticalAlignment="Center" />
@ -73,14 +68,9 @@
<DataTemplate x:DataType="m:FunctionDefinitionItem">
<Button Background="Transparent" BorderThickness="0" Padding="8" MinHeight="44"
AutomationProperties.Name="Insert function"
Tag="{Binding}"
DataContext="{Binding $parent[UserControl].DataContext}"
x:DataType="vm:MainViewModel"
Command="{Binding InsertFunctionCommand}"
CommandParameter="{Binding Tag.FunctionName, RelativeSource={RelativeSource Self}}">
<StackPanel Spacing="8"
DataContext="{Binding Tag, RelativeSource={RelativeSource AncestorType=Button}}"
x:DataType="m:FunctionDefinitionItem">
Command="{Binding DataContext.InsertFunctionCommand, RelativeSource={RelativeSource AncestorType=UserControl}}"
CommandParameter="{Binding FunctionName}">
<StackPanel Spacing="8">
<StackPanel Orientation="Horizontal" Spacing="8" VerticalAlignment="Center">
<TextBlock FontFamily="{StaticResource MDI}" Text="{Binding Icon}" />
<TextBlock Text="{Binding FunctionName}" FontWeight="Bold" />