【发布时间】:2018-10-17 09:43:17
【问题描述】:
我有一个需求,我需要将可观察集合列表绑定到动态创建的 ComboBox 的项目源。
问题是我们通常在 ItemsSource 属性中通过 xaml 进行绑定,但现在网格中的控制行是动态添加的,因此行中的每个 ComboBox 都引用同一个集合,而我需要将它绑定到可观察集合中的单独集合每次在网格中添加一行时列出。
这是我迄今为止所尝试的,任何指导将不胜感激。谢谢。
public virtual List<ObservableCollection<ComboBoxEntity>> ListRewardRule { get; set; }
Xaml:
<itimControls:ComboBox Name="cboReward"
IsMandatory="True"
itimComponents:ComponentManager.ComponentId="TXT_GROUP_RULE"
MaxWidth="400"
MinWidth="150"
ItemsSource="{Binding ListRewardRule, ElementName=RDefinitionScreen}"
DisplayMemberPath="Name"
SelectedValuePath="Code"
Loaded="cboReward_Loaded"
SelectedValue="{Binding RewardRuleId, Mode=TwoWay}"
SelectionChanged="cboReward_SelectionChanged">
</itimControls:ComboBox>
.CS:
private void cboReward_Loaded(object sender, RoutedEventArgs e)
{
Itim.Framework.Silverlight.UI.Controls.ComboBox cboReward = ((Itim.Framework.Silverlight.UI.Controls.ComboBox)sender);
int row = (int)cboReward.GetValue(Grid.RowProperty);
if (Model.ListRewardRule.Count > 0)
{
var rewardGroups = Model.RewardGroupAndTier.RewardGroups;
if(rewardGroups.Count > 1)
{
cboReward.ItemsSource = Model.ListRewardRule[row];
}
}
}
【问题讨论】:
标签: wpf data-binding grid silverlight-4.0