如何将组合框的第一项显示为组合框的标题

时间:2013-06-19 17:59:09

标签: wpf xaml mvvm

我想做的是将我的组合框的第一项作为标题。我试图google并发现我可以使用IsSynchronizedWithCurrentItem =“True” 但问题是我有不同的控件,我隐藏和显示基于Id。

XAML: 让我说我在我的xaml中有这个用于组合框应用

      <ComboBox HorizontalAlignment="Left" Margin="10,0,0,81" Width="122" VerticalAlignment="Bottom"   IsSynchronizedWithCurrentItem="True" 
        ItemsSource="{Binding Path=Applications}" DisplayMemberPath="Name" SelectedValue="{Binding Path= SelectedApplication,Mode=TwoWay}"
         SelectedValuePath="Name" />

这是好的,直到我到这里进行组合框交易

     <ComboBox Margin="0,0,732,81" HorizontalAlignment="Right" Width="124" VerticalAlignment="Bottom"  IsSynchronizedWithCurrentItem="True" 
        ItemsSource="{Binding Path=TransactionTypes}" DisplayMemberPath="Name" SelectedValue="{Binding Path= SelectedTransaction,Mode=TwoWay}"
        SelectedValuePath="Name" Grid.ColumnSpan="2" />

这里由于第一个元素是由(IsSynchronizedWithCurrentItem =“True”)显示在事务组合框中,我的第三个控件是 我希望仅在我对项目进行选择时才显示的网格 默认情况下会显示内部事务,但我不希望仅在我执行选择时加载网页加载,但我又想要标题。

1 个答案:

答案 0 :(得分:0)

嗯,没有必要使用VM,因为这只是恕我直言。只需将控件绑定到自身。

<!-- your settings are omitted, but you should keep them -->
<ComboBox Text="{Binding SelectedItem.Name, RelativeSource={RelativeSource Self}}" />

我有点好奇,你正在使用SelectedValue。通常我使用SelectedItem,但可能有几种方法。