可能是一個noobish問題的性質,但在這裏它是:綁定CommandParameter財產到另一個對象
<StackPanel Orientation="Horizontal">
<TextBox x:Name="InsName" Margin="3" Width="180"/>
<Button Command="cc:MyCommands.AddObject" CommandParameter="{Binding ElementName=InsName, Path=Text}" >Ok</Button>
</StackPanel>
有人能解釋這是爲什麼按鈕被點擊時發出的CommandParameter始終是NULL?如何正確地將參數綁定到另一個元素的屬性?
在此先感謝!
PS:代碼的較大部分,只給一些上下文(所有的代碼完美的作品,除了耳點我上面顯示)
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<StackPanel Orientation="Horizontal" AllowDrop="{Binding IsGroupNode}" Drop="NodeDrop" DragEnter="NodeOver" DragLeave="NodeLeave">
<CheckBox Click="nodeChecked" IsChecked="{Binding IsChecked, Mode=TwoWay}" Visibility="{Binding IsObjectNode, Converter={StaticResource bool2vis}}" />
<TextBlock Text="{Binding Text}" Foreground="{Binding TextColor}" PreviewMouseLeftButtonDown="startDragging">
<TextBlock.ContextMenu>
<ContextMenu>
<MenuItem Header="Add Item">
<StackPanel Orientation="Horizontal" IsEnabled="{Binding IsGroupNode}">
<TextBox Name="InsName" Margin="3" Width="180"/>
<Button Command="cc:MyCommands.AddObject" CommandParameter="{Binding ElementName=InsName, Path=Text}" Height="22" Width="30" IsDefault="True">Ok</Button>
</StackPanel>
</MenuItem>
<MenuItem Header="Remove" Command="cc:MyCommands.RemoveObject" />
<Separator />
<MenuItem Command="cc:MyCommands.UncheckAll" IsEnabled="{Binding IsGroupNode}" />
</ContextMenu>
</TextBlock.ContextMenu>
</TextBlock>
</StackPanel>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
沒什麼輸出窗口... – 2011-03-05 18:35:38
上@ Master_T你的代碼似乎適用於我(命令除外) - 命令是否正確觸發?代碼的上下文是什麼(僅在XAML,控制模板,數據模板等)? – 2011-03-05 18:49:45
該命令觸發並正確路由,它會到達指定的處理程序方法,但是當它執行時,參數設置爲null。我將用更全面的代碼部分編輯第一篇文章。 – 2011-03-06 10:03:11