绑定到文本框不显示属性实际值。setter 上的值有一些要休留的规则,并且值的文本框输入不起作用。
我试图在key_up上实现一些例程,但没有成功
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
}
private ObservableCollection<model> ProdList = new ObservableCollection<model>();
private void NumberValidationTextBox(object sender, TextCompositionEventArgs e)
{
Regex regex = new Regex("[^0-9]+");
e.Handled = regex.IsMatch(e.Text);
}
private void dgcQtdPedida_KeyUp(object sender, KeyEventArgs e)
{
var t = (ClickSelectTextBox)sender;
if (string.IsNullOrWhiteSpace(t.Text))
{
t.Text = "0";
}
}
private void dgcQtdPedida_KeyDown(object sender, KeyEventArgs e)
{
}
private void dgcQtdPedida_LostFocus(object sender, RoutedEventArgs e)
{
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
PedDataGrid.ItemsSource = null;
ProdList.Add(new model()
{
ProdCodBI = 1,
Mandatory = true,
QtdMin = 3
});
ProdList.Add(new model()
{
ProdCodBI = 2,
Mandatory = false,
QtdMin = 2
});
ProdList.Add(new model()
{
ProdCodBI = 3,
Mandatory = false,
QtdMin = 0
});
PedDataGrid.ItemsSource = ProdList;
PedDataGrid.Items.Refresh();
PedDataGrid.UpdateLayout();
}
}
//model
public long ProdCodBI { get; set; }
public bool Mandatory { get; set; }
public long? QtdMin { get; set; }
private long? _QtdPed { get; set; }
public long QtdPed
{
get
{
long qtdp = _QtdPed ?? 0;
if (Mandatory || qtdp > 0)
{
if (qtdp < (QtdMin ?? 1))
{
qtdp = QtdMin ?? 1;
}
}
当值不满足要求时,消息框会通知,并且文本框中会填充_QtdPed。上面的代码只是一个更大图景的复制品。但体验是一样的。有时文本框中会填充正确的值...由于某种原因,当焦点放在单元格上时,该值会更新...
饮歌长啸
相关分类