0

startDate と endDate を含むプロパティを持つカスタム Tenancy オブジェクトの にListBoxバインドされたがあります。ObservableCollection

ただし、各フォームListBoxを表示したい:ListBoxItem

01/01/2001 - 22/12/2012

つまり、2 つのバインドされたプロパティと、中間の 1 つの部分文字列です。

この方法での出力をフォーマットするにはどうすればよいItemSourceですか? DisplayMemberPath必要なプロパティへのポイントは理解していますが、2 つ必要DisplayMemberPathsですよね?

助けてくれてありがとう。

4

2 に答える 2

2

カスタムItemTemplateを作成して、この外観を実現できます。

<ListBox ItemsSource="{Binding MyItems}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <TextBlock>
                <Run Text="{Binding StartDate}"/><Run Text=" - " /><Run Text="{Binding EndDate}" />
            </TextBlock>
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
于 2013-02-04T16:10:02.977 に答える
0

DisplayMemberPathItemTemplateこれは、テキストがDisplayMemberPathアイテムにバインドされたTextBlockである必要があることを示す簡単な方法です。

ItemTemplateそれよりも詳細にしたい場合は、ItemTemplateプロパティを上書きできます。

例えば、

<ListBox.ItemTemplate>
    <DataTemplate>
        <TextBox>
            <TextBlock.Text>
                <MultiBinding StringFormat="{0:M/d/yy} - {1:M/d/yy}">
                    <Binding Path="StartDate " />
                    <Binding Path="EndDate" />
                 </MultiBinding>
             </TextBlock.Text>
        </TextBox>
    </DataTemplate>
</ListBox.ItemTemplate>
于 2013-02-04T16:11:09.887 に答える