我有以下Canvas有3个元素:
<Rectangle x:Name="start" Canvas.Left="20" Canvas.Top="100" Width="25" Height="25" Fill="Pink"/>
<Line X1="{Binding ConverterParameter=X, ElementName=start, Converter={StaticResource CanvasPositionConverter}}"
Y1="{Binding ConverterParameter=Y, ElementName=start, Converter={StaticResource CanvasPositionConverter}}"
X2="{Binding ConverterParameter=X, ElementName=root, Converter={StaticResource CanvasPositionConverter}}"
Y2="{Binding ConverterParameter=Y, ElementName=root, Converter={StaticResource CanvasPositionConverter}}"
Stroke="Red" StrokeThickness="2" />
<!--I have something external that controls the position of this dockpanel on the canvas so on runtime it may move-->
<DockPanel x:Name="root" Canvas.Left="0" Canvas.Top="0" Width="20" Height="20" />
Run Code Online (Sandbox Code Playgroud)
其中CanvasPositionConverter是这样的:
public object Convert(object value, Type targetType, object parameter,
System.Globalization.CultureInfo culture)
{
if (parameter.ToString().ToLower() == "x")
return Canvas.GetLeft(value as FrameworkElement);
else …Run Code Online (Sandbox Code Playgroud) 在这个网站上有类似的问题,但我没有找到真正有效的答案,所以我再次发布.
public MyClass
{
public person Person1 {get; set;}
public person Person2 {get; set;}
CalculatedProperty
{
get
{ return Person1.Salary + (Person2.Salary/2) ; }
}
}
public class Person
{
public double Salary
{ get; set;}
}
Run Code Online (Sandbox Code Playgroud)
我希望能够在CalculatedProperty任何时候Person1.Salary和/或Person2.Salary更改时通知更改.
我曾尝试添加OnPropertyChanged("CalculatedProperty")上的制定者Person1和Person2,但它不工作(我明白为什么),但无法找到一个方法来更改通知.请帮忙=)
(有没有办法使用ObjectDataProvider它?...一直在尝试...)