我在UI页面上工作以表示比例的重量值。
c#代码不断从实际设备中读取比例值
我必须在UI(wpf)屏幕上显示价值。
当缩放值改变UI屏幕(scaleShow.xaml.cs)时需要知道
比例值已经改变。
所以我正在考虑使用该事件让scaleShow.xaml.cs页面知道。
但不确定如何实施它
from collections import defaultdict
cnt = defaultdict(int) # create a default dict where the default value is
# the result of calling int
for key in arr:
cnt[key] += 1 # if key is not in cnt, it will put in the default
# cnt_list = list(cnt.items())
我尝试在MainWindow.cs中创建事件但不确定如何使用它(如果它的按钮点击它有点明显可用)
MainWindow.xaml.cs
this.Dispatcher.BeginInvoke(new Action(delegate()
{
this.ctTbWeight.Text = this.curWeight + " kg";
//when this.curWeight value changed I want to the scale.xaml.cs page notice it
}
scale.xaml.cs
public scale(EventHandler handler, ILog logger, ObservableDictionary<string, LanguageChangedImpl> language, Stopwatch elapse)
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(_PageLoaded);
this.tel = new Telegram();
this.tel.Name = this.GetType().Name;
this.pagingMachine = handler;
this.def = new Defines();
this.log = logger;
this.lang = language;
this.elapseTime = elapse;
}
请给我一些方向让比例页面注意到比例值已经改变。如果您需要更多信息,请告诉我。
答案 0 :(得分:0)
您可以在显示控件上使用Dependency属性和Binding,而不是使用事件。 在后面的代码中,创建一个依赖属性:
reject_if block
注意:我假设价值是双倍的 - 如果你的是另外的话就改变它。 在UI的xaml文件中,只需将相应的属性绑定到ScaleValue
即可public static readonly DependencyProperty ScaleValueProperty = DependencyProperty.Register("ScaleValue", typeof(double), typeof(MainWindow), new PropertyMetadata(default(double)));
public double ScaleValue { get { return (double) GetValue(ScaleValueProperty); } set { SetValue(ScaleValueProperty, value); } }
正常的依赖项属性通知事件应该在ScaleValue更改时处理UI的更新
答案 1 :(得分:0)
使用事件处理程序:
公共事件EventHandler myEvent;
public MainWindow()
{
InitializeComponent();
myEvent = OnMyEvent;
}
private void OnMyEvent(object sender, EventArgs e)
{
//do UI updates
}
现在在您检查比例值的循环中,通过调用
来触发事件myEvent?.Invoke(this,null)