gpt4 book ai didi

WPF:将组合框中的 DisplayMemberPath 绑定(bind)到项目

转载 作者:行者123 更新时间:2023-12-04 01:39:02 26 4
gpt4 key购买 nike

好的,这有点奇怪,但这基本上是我需要做的。我有一个绑定(bind)到 Document 对象的 WPF 控件。 Document 对象有一个 Pages 属性。所以在我的 ViewModel 中,我有一个 CurrentDocument 属性和一个 CurrentPage 属性。

现在,我有一个已绑定(bind)到 CurrentDocument.Pages 属性并更新 CurrentPage 属性的组合框。

<ComboBox ItemsSource="{Binding CurrentDocument.Pages}"
DisplayMemberPath="???"
SelectedItem="{Binding CurrentPage, Mode=TwoWay}">
</ComboBox>

跟我到现在?所有这一切都很好,除了我需要 DisplayMemberPath 来显示“第 1 页”、“第 2 页”等.....

我尝试创建这样的转换器:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string pageNumber = "Page {0}";
return string.Format(pageNumber, value);
}

并尝试像这样将 DisplayMemberPath 绑定(bind)到它:
DisplayMemberPath="{Binding RelativeSource={RelativeSource Self}, Path=Index, Converter={StaticResource pgTitleConv}}"

但它仍然不会出现在组合框文本中!!!

没有“索引”属性,但我不知道该怎么做……如何访问组合框绑定(bind)到的项目的索引……??????

最佳答案

试试这个:

<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Converter={StaticResource pgTitleConv}}"/>
</DataTemplate>
</ComboBox.ItemTemplate>

在您的 valueconverter 中,如果您可以访问 pages 集合,则可以使用 CurrentDocument.Pages.IndexOf(value) 来获取绑定(bind)项目的索引。我相信有更好的方法。

关于WPF:将组合框中的 DisplayMemberPath 绑定(bind)到项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1190804/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com