У меня есть требование, где мне нужно связать список наблюдаемых коллекций с источником элементов динамически создаваемых ComboBox.
Проблема в том, что мы связываем xaml условно в свойстве ItemsSource, но теперь управляющие строки вСетка добавляется динамически, поэтому каждый 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];
}
}
}