我有一個Zone
對象,它包含如何將對象綁定到ComboBox,但在更改時更新其他對象?
public int Block {get;set;}
我也有包含最小和最大Block
值,其分別爲0和2的結構對象。
我需要顯示一個有效值範圍的組合框,但我需要將選定的值綁定到Block
。
我這樣做的最好方法是什麼?
我一直在嘗試以下:
var blocks = new Dictionary<string, int>();
for (int i = _currentZone.Constraints.Block.Min; i <= _currentZone.Constraints.Block.Max; i++)
{
blocks.Add("Block " + i, i);
}
var blocksCombo = new ComboBoxControl(blocks, GetCurrentBlockValue());
與ComboBoxControl定義爲
public ComboBoxControl(Dictionary<string, int> comboItems, int? selectedValue)
{
InitializeComponent();
cboItems.ItemsSource = comboItems;
cboItems.SelectedValue = selectedValue;
}
,並定義爲
<Grid>
<ComboBox x:Name="cboItems"
SelectionChanged="combo_SelectionChanged"
Height="25"
SelectedValuePath="Value">
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=Key}"/>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
</Grid>
的XAML當combo_SelectionChanged
事件手動觸發我更新Block
的值,這是不理想的。
我想要的是能夠設置與字典中的項目組合框,但是當我更改所選項目時,值綁定到不同的對象 - Block
。這可能嗎?
如果是這樣,我該如何執行此操作?如果沒有,我有更好的方式去做這件事比我現在做的更好嗎?