3

曲のヘッダーに曲の名前とIDを組み合わせたい。私が持っていれば可能でしょうか:

Song
{
   public string Name {get; set;}
   public int ID {get; set;}
}

それらを Expander のヘッダーにバインドしたいと考えています。現時点では、1 つのプロパティのみをバインドするためです。それはこのようなものです:

<Expander Foreground="#FFF4E7CA"  Header="{Binding Song.Name}" FontWeight="Bold">
</Expander>

しかし、私はこのようなものになりたいです:

Header = "{Binding Some.Name, Song.ID}" 

それならなんとかなるかな?はいの場合、どのように?前もって感謝します。

4

3 に答える 3

9

このようなもの:

<Expander ...>
  <Expander.Header>
    <TextBlock>
      <TextBlock Text="{Binding Song.Name}"/>
      <TextBlock Text=" "/>
      <TextBlock Text="{Binding Sond.ID}"/>
    </TextBlock>
  </Expander.Header>
  ...
</Expander>
于 2012-04-24T10:57:22.013 に答える
5

You could either

1) expose a new property on your view model and bind to that

Song
{
   public string Name {get; set;}
   public int ID {get; set;}
   public string Header {get { return string.Format("{0} {1}", Name, ID); } }
}

2) use a multi-binding with a string format

<TextBlock.Text>
    <MultiBinding StringFormat="{}{0} {1}">
        <Binding Path="Song.Name"/>
        <Binding Path="Song.Id"/>
    </MultiBinding>
</TextBlock.Text>

3) If you're using WPF4, then Run is bindable so the answer regarding using Run would then work.

于 2012-04-24T11:41:05.097 に答える
1

はい、マルチバインディング クラスを使用できます

于 2012-04-24T10:55:24.720 に答える