WPF根据不同的ID在组合框中选择

时间:2018-04-26 15:16:28

标签: c# wpf xaml

我正在编写一个应用程序,其中显示了所有国家/地区。它还应编辑所选国家/地区的信息。 我从azure数据库中获取所有数据,到目前为止一切都很好。 Current Result

这是我的数据库结构: Database Structure 如你所见,各大洲都在不同的桌子上。 我也可以在下拉列表in the dropdown

中显示所有大陆

我想展示一下这个国家的当前大陆。 你如何将ContinentID链接到大陆? Bellow是MainWindow.xaml的代码

<TextBlock Text="Continent" Margin="0 10 0 0"/>
    <ComboBox ItemsSource="{Binding Path=Continenten}"
       DisplayMemberPath="ContinentNaam"
       SelectedValuePath="{Binding CurrentLand.ContinentID}"
       SelectedValue="{Binding CurrentLand.ContinentID}" />

我尝试了SelectedValuePath&amp; SelectedValue但到目前为止没有。 例如,当 ContinentID 为2时,它应显示&#39; Europe&#39;

Image with the xaml code

1 个答案:

答案 0 :(得分:0)

DisplayMemberPath"ContinentID"类似:正在显示的项目的属性名称,或该项目属性的属性路径。所以它应该是value属性的名称。可能是<ComboBox ItemsSource="{Binding Path=Continenten}" DisplayMemberPath="ContinentNaam" SelectedValuePath="ContinentID" SelectedValue="{Binding CurrentLand.ContinentID}" />

CurrentLand

如果您的意图是将新的大陆ID分配给当前选定的土地(CurrentLand),这将有效。如果您只想显示 IsReadOnly="True"的大陆,而不是让用户将其更改为其他内容,请将import org.apache.spark.sql.expressions._ import org.apache.spark.sql.functions._ val w = Window.partitionBy("key").orderBy("item_desc") val df = Seq( (1, "desc1"), (1, "desc2"), (1, "desc3"), (1, "desc4"), (1, "desc5"), (1, "desc6") ).toDF("key", "item_desc") df // Add sequential id for group 0 .. n - 1 .withColumn("id", row_number.over(w) - 1) // Add row group id .withColumn("group_id", floor($"id" / 4)) // Add column group id .withColumn("column_id", concat(lit("item_desc"), $"id" % 4)) .groupBy("key", "group_id") .pivot("column_id") .agg(first("item_desc")) .drop("group_id").show // +---+----------+----------+----------+----------+ // |key|item_desc0|item_desc1|item_desc2|item_desc3| // +---+----------+----------+----------+----------+ // | 1| desc1| desc2| desc3| desc4| // | 1| desc5| desc6| null| null| // +---+----------+----------+----------+----------+ 添加到您的ComboBox。