この質問はコードとXAMLを全く扱っていません。c#クラスプロパティを複合構造体にバインドする
は、だから私はこのクラスを持って、Location
と呼ばれる:
public class Location
{
public int id { get; set; }
public double latitude { get; set; }
public double longitude { get; set; }
public string name { get; set; }
public string type { get; set; }
public bool isAnOption { get; set; }
public Location(int newId, double newLatitude, double newLongitude, string newName, string newType)
{
id = newId;
latitude = newLatitude;
longitude = newLongitude;
name = newName;
type = newType;
isAnOption = true;
}
public System.Windows.Shapes.Ellipse createIcon()
{
System.Windows.Shapes.Ellipse icon = new System.Windows.Shapes.Ellipse();
SolidColorBrush brush;
if (isAnOption)
{
brush = new SolidColorBrush(Colors.Blue);
}
else
{
brush = new SolidColorBrush(Colors.Red);
}
brush.Opacity = 0.5;
icon.Fill = brush;
icon.Height = icon.Width = 44;
icon.HorizontalAlignment = HorizontalAlignment.Left;
icon.VerticalAlignment = VerticalAlignment.Top;
Thickness locationIconMarginThickness = new Thickness(0, 0, 0, 0);
locationIconMarginThickness.Left = (longitude - 34.672852)/(35.046387 - 34.672852) * (8704) - 22;
locationIconMarginThickness.Top = (32.045333 - latitude)/(32.045333 - 31.858897) * (5120) - 22;
icon.Margin = locationIconMarginThickness;
Label labelName = new Label();
labelName.Content = name;
StackPanel locationData = new StackPanel();
locationData.Children.Add(labelName);
ToolTip toolTip = new ToolTip();
toolTip.Content = locationData;
icon.ToolTip = toolTip;
return icon;
}
}
かなりまっすぐ進みます。 createIcon
メソッドに注目してください。
MainWindow(WPFプロジェクト)では、List<Location> locations
と宣言し、データを入力します。私はそうのような既存のGridScroller
の「アイコン」を入れて、いくつかの点で
を:
今gridScroller.Children.Add(location.createIcon());
、私が持っている問題は、私はのブラシの色にLocation
のプロパティisAnOption
をバインドしたいです対応するアイコンのブラシの色です。つまり、Location
から派生した特定のオブジェクトのプロパティisAnOption
が変更された場合、その変更をGridScroller上にある楕円の色に反映させたいと思います。 お願いします。
おかげ
うわー! CodeNaked、それは本当に速いです。 – zazkapulsk
私のコードで 'INotifyPropertyChanged'と' IValueConverter'の実装について私に示唆を与えるほど親切ですか? – zazkapulsk
@zazkapulsk - 私が提供したリンクには、あなたのケースに適応できるコード例があります。 – CodeNaked