-1
我有一個綁定到我的ViewModel中的顏色屬性的背景邊框。但是初始化後,背景只會改變一次顏色。同時,我有3個文本框綁定到相同的屬性(R,G和B),他們工作正常。邊框背景裝訂只能工作一次
爲什麼文本框工作正常,邊框不是?這裏是邊境代碼:
<Border x:Name="bNewColor" BorderBrush="Black" >
<Border.Background>
<SolidColorBrush Color="{Binding NewColor}"/>
</Border.Background>
</Border>
文本框:
<Ellipse x:Name="eMarker" Margin="{Binding MarkerMargin, Mode=TwoWay}" Width="6" Height="6"/>
<TextBox x:Name="tbColorR" TextWrapping="Wrap" Text="{Binding NewColor.R}"/>
VM:
class ViewModel
{
Palette _palette
Thickness _markerMargin;
public Thickness MarkerMargin
{
get { return _markerMargin; }
set
{
_markerMargin = value;
_palette.DeterminateColorInPoint((int)_markerMargin.Left, (int)_markerMargin.Top);
OnPropertyChanged();
}
}
public ViewModel()
{
_palette = new Palette();
}
...
}
調色板類:
class Palette
{
Color[,] _paletteColors;
Color _newColor;
public Color NewColor
{
get { return _newColor; }
set
{
_newColor = value;
OnPropertyChanged();
}
}
public void DeterminateColorInPoint(int x, int y)
{
_newColor = _paletteColors[x, y];
}
...
}
不可能說沒有看到[良好,_minimal_,_complete_代碼示例](http://stackoverflow.com/help/mcve),可靠地再現問題,爲什麼你的代碼不工作。同時,查看調試輸出......綁定過程中的實際錯誤通常會導致綁定問題,這些問題將顯示在程序的調試輸出中。 –
我看不出你如何改變'NewColor' –
你很可能試圖從你的文本框中修改R,G,B組件,這不會像你綁定它們那樣工作。 –