C# wpf 不会使用数组绑定刷新
C# wpf wont refresh using array binding
我在 wpf 上有一个简单的 Ellispis,我将其绑定到数组项“Data[0]”以对其进行动画处理。
问题是当我将它绑定到那个数组时,它的值切换“true/false”对 UI.
没有影响
但是当我将绑定从同一个 class 更改为另一个 public bool 时。没问题
<Ellipse Width="19"
Height="18"
Margin="29,137,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Fill="{Binding Data[0],
Converter={StaticResource BooleanToBrushConverter},
Mode=OneWay,
UpdateSourceTrigger=PropertyChanged}"
Stroke="Black" />
当我绑定到那个数组时,UI:
上没有更新
public bool[] Data
{
get{ return _data; }
set{ _data= value; }
}
private bool[] _data= new Boolean[20];
当我对那个 bool 进行绑定时,它正在工作:
public bool DataSimple
{
get { return _dataSimple; }
set { _dataSimple=value; }
}
private bool _dataSimple;
这用于刷新它达到的值和控件,并且两者在调试中都显示出良好的结果:
private void RefreshData(object sender, EventArgs e)
{
_data= _process.DataRes;
_dataSimple= _process.DataRes[0];
Debug.WriteLine(_data[0]);
Debug.WriteLine(_dataSimple);
}
有人可以帮我解决这个问题吗?
谢谢
您的问题不清楚您正在更改什么并希望触发用户界面更新。
如果您要更新单个 bool 值,请将 bool[]
替换为 ObservableCollection<bool>
并使用适当数量的项目对其进行初始化。
如果您要提供全新的 bool 值数组,那么您的 类 需要为更新的属性实施 INotifyPropertyChanged
。
我在 wpf 上有一个简单的 Ellispis,我将其绑定到数组项“Data[0]”以对其进行动画处理。 问题是当我将它绑定到那个数组时,它的值切换“true/false”对 UI.
没有影响但是当我将绑定从同一个 class 更改为另一个 public bool 时。没问题
<Ellipse Width="19"
Height="18"
Margin="29,137,0,0"
HorizontalAlignment="Left"
VerticalAlignment="Top"
Fill="{Binding Data[0],
Converter={StaticResource BooleanToBrushConverter},
Mode=OneWay,
UpdateSourceTrigger=PropertyChanged}"
Stroke="Black" />
当我绑定到那个数组时,UI:
上没有更新 public bool[] Data
{
get{ return _data; }
set{ _data= value; }
}
private bool[] _data= new Boolean[20];
当我对那个 bool 进行绑定时,它正在工作:
public bool DataSimple
{
get { return _dataSimple; }
set { _dataSimple=value; }
}
private bool _dataSimple;
这用于刷新它达到的值和控件,并且两者在调试中都显示出良好的结果:
private void RefreshData(object sender, EventArgs e)
{
_data= _process.DataRes;
_dataSimple= _process.DataRes[0];
Debug.WriteLine(_data[0]);
Debug.WriteLine(_dataSimple);
}
有人可以帮我解决这个问题吗? 谢谢
您的问题不清楚您正在更改什么并希望触发用户界面更新。
如果您要更新单个 bool 值,请将 bool[]
替换为 ObservableCollection<bool>
并使用适当数量的项目对其进行初始化。
如果您要提供全新的 bool 值数组,那么您的 类 需要为更新的属性实施 INotifyPropertyChanged
。