簡単に言うと、Xaml のオブジェクト インスタンスにバインドされた一連のリスト ボックスを含むアプリケーションのセクションがあります。を使用して、マスター オブジェクトからオブジェクトIValueConverter
のリストを取得し、取得したオブジェクトのフォームを表示することができました。しかし、私がやりたいのは、代わりにオブジェクトのプロパティを表示することです。を に設定しましたが、結果は. 以下のコードの関連部分を投稿しました。<Part>
.ToString()
Name
DisplayMemberPath
Name
listboxitem
XAML:
<Window.Resources>
<local:LocationtoEquipmentCOnverter x:Key="locationEquipmentFiller" />
</Window.Resources>
<Window.DataContext>
<local:MegaWdiget/>
</Window.DataContext>
<ListBox x:Name="listboxFront" HorizontalAlignment="Left" Margin="180,45,0,0" VerticalAlignment="Top" Width="82" Opacity="0.5" ItemsSource="{Binding ConverterParameter=Front, Converter={StaticResource locationEquipmentFiller}, Mode=OneWay}" DisplayMemberPath="Name"/>
ValueConverter:
public class LocationtoEquipmentCOnverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
MegaWidget MWidget = (MegaWidget)value;
Location loc = MWidget.Locations[(string)parameter];
return loc.Contents;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
MegaWidget オブジェクトには以下が含まれます。
[XmlElement]
public Dictionary<string, Location> Locations { get; set; }
Location オブジェクトには、名前を照会する必要がある実際のオブジェクトを含むリストが含まれています。
public List<Part> Contents;
解決策が見つかりました
Mate が推奨するトラブルシューティングを続けたところ、渡されたオブジェクトが ListBoxItems ではなく Part オブジェクトであることがわかりました。これにより、ListBox
ListBoxItems ではなく、実際のオブジェクトで満たされています。ValueConverter
コンテンツ タグが必要なものに設定された ListBoxItemsを渡すように変更することList
で、ListBoxes が適切に読み込まれます。以下の質問領域に解決策をリストしました。