Как и большинство людей, вам нужно иметь INotifyPropertChanged там, где ваша переменная связана с.
xaml:
<Grid.ColumnDefinitions>
<ColumnDefinition Width="10"/>
<ColumnDefinition Width="{Binding NotamWidth, UpdateSourceTrigger=PropertyChanged}"/>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="10"/>
Затем вам необходимо иметь правильный "Datacontext", определенный в вашем конструкторе для xaml.cs.Например, если «NotamWidth» является переменной в вашем xaml.cs, вы должны установить Datacontext равным «this».
xaml.cs:
Datacontext = this;
Однако, скажем, NotamWidth является переменной в другом классе «GridChanger».Один из способов получить правильный Datacontext - создать глобальный экземпляр класса «GridChanger» в вашем xaml.cs, а затем сделать Datacontext равным экземпляру.
xaml.cs:
public class MainWindow
{
GridChanger gChng = new GridChanger();
public MainWindow()
{
DataContext = gChng;
}
}
Оттуда мы можем создать переменную, с которой будем связываться.Возможно, есть лучший способ сделать это, но я всегда делал переменные, которые связываю таким образом.
whereveryourvariableis.cs
private double _NotamWidth;
public double NotamWidth
{
get
{
return _NotamWidth;
}
set
{
_NotamWidth = value;
if (PropertyChanged != null)
{
PropertyChanged.Invoke(this, new PropertyChangedEventArgs(nameof(NotamWidth)));
}
}
}