【发布时间】:2013-12-11 10:18:02
【问题描述】:
我对 wpf 模板和绑定有点陌生,这就是为什么遇到以下问题:
假设我的应用程序中有以下对象。
XAML:
<ComboBox Name="ComboModel" Width="230" Height="25" Grid.Row="3" Grid.Column="1" HorizontalAlignment="Left" IsEnabled="True" >
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock>
<TextBlock.Text>
<MultiBinding StringFormat="{}{0}, {1}: {2}-{3}">
<Binding Path="ModelName"/>
<Binding Path="ModelBody"/>
<Binding Path="ModelFromYear"/>
<Binding Path="ModelToYear"/>
</MultiBinding>
</TextBlock.Text>
</TextBlock>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
代码: Combobox 绑定到 ModelYearClass 对象列表。
public class ModelYearClass
{
private string modelName;
public string ModelName
{
get { return modelName; }
set
{
modelName = value;
}
}
private string modelMake;
public string ModelMake
{
get { return modelMake; }
set
{
modelMake = value;
}
}
private string modelBody;
public string ModelBody
{
get { return modelBody; }
set
{
modelBody = value;
}
}
private string modelYear;
public string ModelYear
{
get { return modelYear; }
set
{
modelYear = value;
}
}
private int modelId;
public int ModelId
{
get { return modelId; }
set
{
modelId = value;
}
}
private string modelFromYear;
public string ModelFromYear
{
get { return modelFromYear; }
set
{
modelFromYear = value;
}
}
private string modelToYear;
public string ModelToYear
{
get { return modelToYear; }
set
{
modelToYear = value;
}
}
}
...
List<ModelYearClass> ModelYearList;
...
ComboModel.ItemsSource = ModelYearList;
ComboModel.SelectedValuePath = "@ModelId";
ComboModel.SelectedValue = 2;
一切都很好 - 组合框填充了我想要的内容,但我无法通过这些行分配我需要的值。
ComboModel.SelectedValuePath = "@ModelId";
ComboModel.SelectedValue = 2;
我认为对于带有 multibindig 的组合框可能以其他方式完成?
如何做到这一点?请帮帮我。
【问题讨论】: