ComboBox ItemTemplate无法与KeyValuePair一起使用

时间:2017-03-23 12:21:12

标签: c# wpf

我的ComboBox项必须是:

"某些文字10.00其他文字1.00"

我试过下面的代码,但它没有用。它抛出异常。

  

System.NullReferenceException未处理消息:未处理   类型' System.NullReferenceException'的异常发生在   WindowsBase.dll中

MyKeyValuePairArrayList<KeyValuePair<decimal, decimal>>

<ComboBox ItemsSource="{Binding Source={x:Static static:MyApp.MyKeyValuePairArray}}">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <Run Text="Some Text" />
                <Run Text="{Binding Path=Key}" />
                <Run Text="Other Text" />
                <Run Text="{Binding Path=Value}" />
            </TextBlock>
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

这有效,但我需要上面的模板:

<ComboBox ItemsSource="{Binding Source={x:Static static:MyApp.MyKeyValuePairArray}}" 
          DisplayMemberPath="Value" 
          SelectedValuePath="Key"/>

1 个答案:

答案 0 :(得分:2)

VS在输出窗口中写入:

&#34; TwoWay或OneWayToSource绑定无法使用只读属性键和值&#34;

明确更改绑定模式:

<Run Text="Some Text" />
<Run Text="{Binding Path=Key, Mode=OneWay}" />
<Run Text="Other Text" />
<Run Text="{Binding Path=Value, Mode=OneWay}" />