У меня есть доска с ярлыками для кликов (Grass and Unit). Когда я нажимаю ярлык Grass, я должен переместить метку блока в положение x и y Grass. Это работает, но что-то не так. Когда я нажимаю на метку, ничего не происходит до тех пор, пока я не вытащу курсор из щелкнутой метки, тогда будет выполняться желаемое поведение.C# WPF Привязки не обновляются до тех пор, пока MouseOut
XAML
<local:Grass Grid.Row="9" Grid.Column="16" />
<local:Unit Grid.Row="{Binding Path=xPos, UpdateSourceTrigger=PropertyChanged}" Grid.Column="{Binding Path=yPos, UpdateSourceTrigger=PropertyChanged}" >
<local:Unit.Background>
<ImageBrush ImageSource="Images/tjej.png"/>
</local:Unit.Background>
</local:Unit>
ObjectInspector
public class ObjectInspector : INotifyPropertyChanged
{
private int _xPos = 1, _yPos = 2;
public int xPos
{
get { return _xPos; }
set
{
_xPos = value;
NotifyPropertyChanged("xPos");
}
}
public int yPos
{
get { return _yPos; }
set {
_yPos = value;
NotifyPropertyChanged("yPos");
}
}
private string _type = "none";
public string type
{
get { return _type; }
set {
_type = value;
NotifyPropertyChanged("type");
}
}
public event PropertyChangedEventHandler PropertyChanged;
public void NotifyPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
System.Diagnostics.Debug.WriteLine("property changed");
PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
}
травы
public class Grass : Button
{
protected override void OnClick()
{
base.OnClick();
int x = (int)this.GetValue(Grid.RowProperty);
int y = (int)this.GetValue(Grid.ColumnProperty);
string type = this.GetType().Name;
MainWindow.objectInspector.xPos = x;
MainWindow.objectInspector.yPos = y;
MainWindow.objectInspector.type = type;
}
}
MainWindow
public partial class MainWindow : Window
{
public static ObjectInspector objectInspector= new ObjectInspector();
public MainWindow()
{
InitializeComponent();
this.DataContext = objectInspector;
}
}
Любые идеи?
Редактировать Добавлено MainWindow и Grass
я думаю, что это поможет если вы можете вставить код обработки клика тоже. – Naresh
Как кто-нибудь может попытаться ответить на ваш вопрос, предоставленный с такой маленькой и такой неуместной информацией?Мы не знаем, что находится внутри какого-либо из ваших элементов управления, мы не знаем, что такое 'Binding', о котором вы говорите, и мы ничего не знаем о вашем обработчике кликов. Пожалуйста, чувак ... дай нам перерыв ... помоги нам помочь тебе. – Sheridan
Перерыв. Показанный код! –