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