DisplayMemberPath concatenation

前端 未结 3 1975
孤城傲影
孤城傲影 2021-02-07 02:03

I am trying to bind two values to a ComboBox display value, but I do not know how to do.

This way does not work:

cboRegion.DisplayMemberPath = \"idregion         


        
相关标签:
3条回答
  • 2021-02-07 02:10

    Unfortunately, this is not possible with DisplayMemberPath. You have the following alternatives:

    • Specify a DataTemplate

      <ComboBox>
        <ComboBox.ItemTemplate>
          <DataTemplate>
            <TextBlock>
              <TextBlock.Text>
                <MultiBinding StringFormat="{}{0}: {1}">
                  <Binding Path="idregion"/>
                  <Binding Path="description"/>
                </MultiBinding>
              </TextBlock.Text>
            </TextBlock>
          </DataTemplate>
        </ComboBox.ItemTemplate>
      </ComboBox>
      

      (If you are wondering about the empty braces in the StringFormat attribute, see: What do the {} brackets mean in the StringFormat section of a Binding syntax?)

    • Add a property or field to your data source. How to do that depends on your data source:

      If your combo box is bound to a DataTable, add a DataColumn and fill its values in a loop. Alternatively, change your SQL and add the concatenated value to your SELECT clause.

      If your combo box is bound to a POCO or entity framework object, add a property that returns the concatenation.

    0 讨论(0)
  • 2021-02-07 02:14

    You need to use a DataTemplate:

    <ComboBox Name="cboRegion">
        <ComboBox.ItemTemplate>
            <DataTemplate>
                <TextBlock>
                    <Run Text="{Binding idregion}" />
                    <Run Text="{Binding description}" />
                </TextBlock>
            </DataTemplate>
        </ComboBox.ItemTemplate>
    </ComboBox>
    
    0 讨论(0)
  • 2021-02-07 02:35

    You could create a view, concatenate the two fields, and then refer to the concatenated field name in your DisplayMemberPath property in c#, after referring to the new view in your itemssource property (and after updating your entity framework model)

    0 讨论(0)
提交回复
热议问题