小编bay*_*est的帖子

绑定到Canvas.Left在元素移动时中断

我有以下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)

wpf xaml binding runtime

3
推荐指数
1
解决办法
1053
查看次数

通知计算财产的变化

在这个网站上有类似的问题,但我没有找到真正有效的答案,所以我再次发布.

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")上的制定者Person1Person2,但它不工作(我明白为什么),但无法找到一个方法来更改通知.请帮忙=)

(有没有办法使用ObjectDataProvider它?...一直在尝试...)

c# wpf notify

2
推荐指数
1
解决办法
1054
查看次数

标签 统计

wpf ×2

binding ×1

c# ×1

notify ×1

runtime ×1

xaml ×1