为了账号安全,请及时绑定邮箱和手机立即绑定

C# - 获取;放; 保持 NULL

C# - 获取;放; 保持 NULL

C#
慕工程0101907 2023-09-24 15:47:47
我有一些 wpf 窗口、一些类和一个视图模型。不知何故,当我告诉它时,输入字段的值不会绑定,并且视图模型中的值保持为 NULL。我实际上继续使用该值,但在调试过程中意识到它有一个 NULL 值。在输入窗口中:<dx:ThemedWindow    x:Class="DXEbayManager.NewProductsMenu"    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"    xmlns:dx="http://schemas.devexpress.com/winfx/2008/xaml/core"    Title="NewProductsMenu" Height="200" Width="450">    <StackPanel>        <Grid>            <Grid.ColumnDefinitions>                <ColumnDefinition Width="1*" />                <ColumnDefinition Width="3*" />            </Grid.ColumnDefinitions>             <Label Content="Product Name: " Grid.Column="0"/>            <TextBox x:Name="ProductNameBox" Text="{Binding ProductName}" Grid.Column="1"/>        </Grid>    </StackPanel></dx:ThemedWindow>在我的 ViewModel 中我有:public class NewProductsMenuVM : ViewModelBase    {        public string ProductName { get; set; }        public static NewProductsMenuVM Instance { get; } = new NewProductsMenuVM();    }我想在这里使用该值(其中为 NULL):    public partial class NewProductsMenu : ThemedWindow    {                public void saveToDB()        {            string ProductName = NewProductsMenuVM.Instance.ProductName;        }    }我没有最好的调试技巧,但后面的值{get; set; }也已经是NULL了。为什么会发生这种情况?有什么方法可以解决它?
查看完整描述

1 回答

?
波斯汪

TA贡献1811条经验 获得超4个赞

您需要将DataContext窗口的实例设置为NewProductsMenuVM某处的实例,例如在构造函数中:


public partial class NewProductsMenu : ThemedWindow

{

    public NewProductsMenu()

    {

        InitializeComponent();

        DataContext = NewProductsMenuVM.Instance;

    }


    ...

    public void saveToDB()

    {

        string ProductName = NewProductsMenuVM.Instance.ProductName;

    }

}


查看完整回答
反对 回复 2023-09-24
  • 1 回答
  • 0 关注
  • 79 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信