嗨我有一个组合框,我绑定了一些它,现在我想得到项目ID这是我的xaml:
<ComboBox Name="cmb" ItemsSource="{Binding School}"
SelectedItem="{Binding Id}"
SelectedValue="{Binding Id}"
Width="120"
HorizontalAlignment="Left"
Margin="183,39,0,0"
IsEditable="True"
IsReadOnly="True"
Text="انتخاب پایه"
VerticalAlignment="Top" SelectionChanged="cmb_SelectionChanged_1" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Id}"/>
<TextBlock Text=" - "/>
<TextBlock Text="{Binding SchoolName}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
这就是背后的代码:
Console.WriteLine(cmb.SelectedValue);
Console.WriteLine(cmb.SelectedItem);
但结果是:
{ Id = 1, SchoolName = پيام انقلاب, Base = دوم, Year = 97-98 }
我只需要id所以哪里出错了?
答案 0 :(得分:0)
我通常绑定到与组合框绑定的集合中的相同类型的另一个对象。
例如,假设您的ItemsSource是名为Schools的列表。您创建了一个名为&#34; SelectedSchool&#34;的班级的学校属性。然后在你的组合框中,你创建一个TwoWay绑定到学校。
<ComboBox Name="cmb" ItemsSource="{Binding Schools}"
SelectedItem="{Binding Id}"
SelectedValue="{Binding SelectedSchool, Mode=TwoWay}"
Width="120"
HorizontalAlignment="Left"
Margin="183,39,0,0"
IsEditable="True"
IsReadOnly="True"
Text="انتخاب پایه"
VerticalAlignment="Top" SelectionChanged="cmb_SelectionChanged_1" >
<ComboBox.ItemTemplate>
<DataTemplate>
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Id}"/>
<TextBlock Text=" - "/>
<TextBlock Text="{Binding SchoolName}"/>
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
然后你只需从codebehind / viewmodel中的SelectedSchool属性中获取值。