【发布时间】:2015-03-21 13:35:04
【问题描述】:
我想要一个带有文本字段的简单对话框。现在我有:
视图模型:
public class MyViewModel
{
public string AA { get; set; }
}
查看:
public partial class MyView : Window
{
public MyView(MyViewModel context)
{
InitializeComponent();
this.DataContext = context;
}
public string BB {get; set; }
}
<Window
...>
<Grid>
<Label>name:</Label>
<TextBox Width="110">
<TextBox.Text>
<Binding Path="AA"/>
</TextBox.Text>
</TextBox>
...
</Grid >
</Window>
为了打开它并获取我调用的值:
MyViewModel model = new MyViewModel();
MyView dialog = new MyView(model);
dialog.ShowDialog();
现在我可以从 MyViewModel AA 属性中获取提供的 TextBox 值。
是否可以将提供的值存储在 MyView BB 属性中(并因此删除 MyViewModel)?我尝试更改 xaml 配置,但无论我放什么,BB 属性始终为空。
我问的唯一原因是我的对话框只会收集这个单一的值,我希望它尽可能地精简。
【问题讨论】:
-
你应该把dialog in a using block包装起来
-
@phadaphunk,由于
MyView是 WPF 的Window,它没有Dispose方法。调用ShowDialog应该足以让Close被调用和清理。 -
你的意思是老式的 winforms 从对话框中返回值的方式,比如this?