0

首先是代码:

<ListView ItemsSource="{Binding DataTransferModel.Output}" Background="Transparent" Margin="0" VerticalContentAlignment="Top" AlternationCount="2" Name="lvOutput" ScrollViewer.VerticalScrollBarVisibility="Auto" Grid.Row="2">
    <ListView.ItemTemplate>
        <DataTemplate>
            <StackPanel Orientation="Horizontal" Margin="0,1">
                <UserControls:OutputTextBox Text="{Binding Data, Mode=OneWay}" 
                                            IsReadOnly="True" 
                                            Grid.Row="2" 
                                            TextWrapping="WrapWithOverflow" 
                                            SelectedValue="{Binding Path=DataContext.SelectedOutput, 
                                                            Mode=TwoWay, 
                                                            UpdateSourceTrigger=PropertyChanged, 
                                                            RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type Grid}}
                                                            }" 
                                            />
            </StackPanel>
        </DataTemplate>
    </ListView.ItemTemplate>
</ListView>

而且问题是DataOutputTextBox控件上的属性来自于列表,而属性SelectedOutput应该来自于主DataContext ViewModel。并且列表中的每个条目的属性SelectedOutput都应该相同。但目前它不起作用。:(

4

1 回答 1

0

您的列表视图是否包含在标签中,如果是,网格是否具有来自 ViewModel 的 DataContext?如果是的话,它应该工作。

您在输出窗口中看到任何绑定错误吗?也许您应该尝试使用Snoop来查看您对 SelectedValue 的真实绑定。

编辑:请尝试除 Grid 以外的类型,如果它具有 ViewModel DataContext,则可能是 ListView。

<UserControls:OutputTextBox Text="{Binding Data, Mode=OneWay}" 
                                        IsReadOnly="True" 
                                        Grid.Row="2" 
                                        TextWrapping="WrapWithOverflow" 
                                        SelectedValue="{Binding Path=DataContext.SelectedOutput, 
                                                        Mode=TwoWay, 
                                                        UpdateSourceTrigger=PropertyChanged, 
                                                        RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type ListView}}
                                                        }" 
                                        />
于 2011-05-11T07:27:36.813 回答