我如何绑定到一个数据上下文进一步在Silverlight树

本文关键字:上下文 数据 进一步 Silverlight 一个 何绑定 绑定 | 更新日期: 2023-09-27 17:54:38

在Silverlight中,我为ObservableCollection中的每个项目创建了一个按钮。我在具有ObservableCollection的对象上添加了一个iccommand来处理这个问题。在XAML中,如何从其中一个集合项返回到此?

LayoutRoot。DataContext被设置为以下类的实例:

public class MainViewModel
{
    public ICommand TestCommand { get; protected set; }
    public ObservableCollection<string> Test { get; protected set; }    
    public MainViewModel()
    {
        Test = new ObservableCollection<string>();
        Test.Add("Hello");
        TestCommand = new DelegateCommand(Test, CanTest);
    }
    private void Test(object parameter)
    {
        Test.Add("Test text");
    }
    private bool CanTest(object parameter)
    {
        return true;
    }
}

和XAML:

一起使用
<StackPanel x:Name="LayoutRoot" Background="White">
    <ItemsControl ItemsSource="{Binding Test}" />
    <Button Command="{Binding TestCommand}">Push Me</Button> <!-- I can access TestCommand when I bind to it here -->
    <ItemsControl ItemsSource="{Binding Test}">
        <ItemsControl.ItemTemplate>
            <DataTemplate>
                <Button Content="{Binding}" 
                        Command="{Binding Path=TestCommand, Source=?????}" <!-- But how do I get back to the TestCommand from here? -->
                        CommandParameter="{Binding}" />
            </DataTemplate>
        </ItemsControl.ItemTemplate>
    </ItemsControl>
</StackPanel>

我如何绑定到一个数据上下文进一步在Silverlight树

可以绑定到根元素的名称

<Button Command={Binding Path=DataContext.TestCommand, ElementName=LayoutRoot}" />