我有这个修改后的组合框:
<ContentControl Content="{Binding LoadedFiles}" >
<ContentControl.ContentTemplate>
<DataTemplate>
<Grid>
<ComboBox x:Name="cb" ItemsSource="{Binding}" Width="150" Margin="5" SelectedItem="{Binding SelectedFile}" DisplayMemberPath="FileName"/>
<TextBlock x:Name="tb" Text="Select a file" IsHitTestVisible="False" Visibility="Hidden" Width="150" VerticalAlignment="Center" Margin="10 0 0 0" FontSize="12" FontStyle="Italic" Foreground="#7FFFFFFF" />
</Grid>
<DataTemplate.Triggers>
<Trigger SourceName="cb" Property="SelectedItem" Value="{x:Null}">
<Setter TargetName="tb" Property="Visibility" Value="Visible"/>
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
</ContentControl.ContentTemplate>
</ContentControl>
它的作用是在所选项目为空时显示默认文本。ItemsSource 运行良好。在使用 ContentControl 之前,整个组合框运行良好。现在我无法正确绑定 SelectedItem,即使我更改了组合框的选择,实际对象仍保持初始化时的状态。
我读过这解决了这个问题:
SelectedItem="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=SelectedFile}"
但这对我没有帮助,这里发生了什么?为什么我不能像以前那样绑定?