我真的在努力成为一名新手程序员...这一切都是在WPF中完成的
我的MainWindow中有三个文本框。
将值返回到这些文本框的方法已公开(并且在MainWindow中)。下面是三个文本框中的一个。
public float GetLEL()
{
bool LEL = false;
float parsedLELValue = 0;
LEL = float.TryParse(LEL_TextBox.Text, out parsedLELValue);
return parsedLELValue;
}
如何将此值按原样返回到我的usercontrol类中,即使它发生了变化?
我尝试了各种各样的操作,比如在Usercontrol中创建一个实例(没有用过) -
Application app = new Application();
private float GetNewLEL()
{
float parsedNewLELValue = 0.00F;
bool NewLEL = false;
if (HolidayPay_CheckBox.IsChecked == false)
{
NewLEL = float.TryParse(app.GetHPR().ToString, out parsedNewLELValue);
}
else if (HolidayPay_CheckBox.IsChecked == true)
{
parsedNewLELValue = 0.00F;
}
return parsedNewLELValue;
}
但是,Usercontrol中的实例未在MainWindow中找到GetLEL()方法。有人可以请帮助。其他人建议Get和Set,但我不知道如何做到这一点。
答案 0 :(得分:0)
我试图重现我理解你想要实现的东西;如果您对此代码有任何疑问,我很乐意回答。
MainWindow.xaml:
<Window x:Class="WpfApplication16.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<StackPanel>
<CheckBox IsChecked="{Binding MySuperCheckBoxIsChecked}" />
<TextBox Text="{Binding MySuperFloatValue}" />
<Button Click="Button_Click">Click me !</Button>
<TextBlock x:Name="MySuperTextBlock"/>
</StackPanel>
</Grid>
</Window>
MainWindows.xaml.cs:
using System.Windows;
namespace WpfApplication16
{
public partial class MainWindow : Window
{
private MySuperDataContextClass _mySuperDataContextClass =
new MySuperDataContextClass();
public MainWindow()
{
InitializeComponent();
this.DataContext =_mySuperDataContextClass;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if (_mySuperDataContextClass.MySuperCheckBoxIsChecked)
{
MySuperTextBlock.Text =
_mySuperDataContextClass.MySuperFloatValue.ToString();
}
else
{
MySuperTextBlock.Text = 0.0f.ToString();
}
}
}
}
MySuperDataContextClass.cs:
using System.ComponentModel;
namespace WpfApplication16
{
public class MySuperDataContextClass : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
private bool _mySuperCheckBoxIsChecked;
private float _mySuperFloatValue;
public bool MySuperCheckBoxIsChecked
{
get { return _mySuperCheckBoxIsChecked; }
set
{
_mySuperCheckBoxIsChecked = value;
if (this.PropertyChanged != null)
{
this.PropertyChanged(this,
new PropertyChangedEventArgs("MySuperCheckBoxIsChecked"));
}
}
}
public float MySuperFloatValue
{
get { return _mySuperFloatValue; }
set
{
_mySuperFloatValue = value;
if (this.PropertyChanged != null)
{
this.PropertyChanged(this,
new PropertyChangedEventArgs("MySuperFloatValue"));
}
}
}
}
}