如何在主窗口之前显示对话窗口(例如登录/选项等)?
这是我尝试过的(它显然曾经有过,但现在不再有了):
XAML:
<Application ...
Startup="Application_Startup">
Run Code Online (Sandbox Code Playgroud)
申请:
public partial class App : Application
{
private void Application_Startup(object sender, StartupEventArgs e)
{
Window1 myMainWindow = new Window1();
DialogWindow myDialogWindow = new DialogWindow();
myDialogWindow.ShowDialog();
}
}
Run Code Online (Sandbox Code Playgroud)
结果:首先显示myDialogWindow.关闭时,Window1将按预期显示.但是当我关闭Window1时,应用程序根本没有关闭.
在我的解决方案中,有一个包含几个文件的文件夹.所有这些文件都具有Build Action"Embedded Resource".
使用此代码,我可以获得一个文件:
assembly.GetManifestResourceStream(assembly.GetName().Name + ".Folder.File.txt");
Run Code Online (Sandbox Code Playgroud)
但有没有办法获取*.txt此文件夹中的所有文件?一个名称列表或迭代它们的方法?
在WPF中Listbox,我很困惑与这些概念2:
ItemTemplate和ItemContainerStyle
一个人能更给我解释一下?
我ListBox在我的wpf窗口中绑定了一个ObervableCollection.如果有人点击了某个元素ListBox(就像链接一样),我想打开浏览器.谁能告诉我怎么做?我发现了listboxviews的一些东西,它只是以这种方式工作还是有一种方法只是使用ListBox?
你的
塞巴斯蒂安
我有一个WPF应用程序,它在ViewModel中调用MessageBox.Show()方式(以检查用户是否真的要删除).这实际上是有效的,但是违背了MVVM,因为ViewModel不应该明确地确定View上发生了什么.
所以现在我在想如何在我的MVVM应用程序中最好地实现MessageBox.Show()功能,选项:
我可以收到一条短信,上面写着"你确定......?" 以及我的XAML中的边框中的两个按钮是和否全部,并在模板上创建一个触发器,使其基于名为AreYourSureDialogueBoxIsVisible的ViewModelProperty折叠/可见,然后当我需要此对话框时,将AreYourSureDialogueBoxIsVisible指定为"true" "还可以通过我的ViewModel中的DelegateCommand处理这两个按钮.
我也可以尝试用XAML中的触发器来处理这个问题,这样删除按钮实际上只会使一些Border元素出现,其中包含消息和按钮,而Yes按钮实际上是删除了.
对于曾经使用MessageBox.Show()的几行代码而言,这两种解决方案似乎都过于复杂.
您在哪些方面成功实现了MVVM应用程序中的Dialogue Box?
我试过这种方法..没有运气..
<Style TargetType="{x:Type DataGridRow}">
<Style.Triggers>
<Trigger Property="ItemsControl.AlternationIndex" Value="0">
<Setter Property="Foreground" Value="Red" />
</Trigger>
</Style.Triggers>
</Style>
Run Code Online (Sandbox Code Playgroud)
有没有办法获得行索引?我甚至试过了
<DataTrigger Binding="{Binding AlternationIndex}" Value="0">
<Setter Property="Foreground" Value="Green"></Setter>
</DataTrigger>
Run Code Online (Sandbox Code Playgroud) 我怎样System.Windows.ShowDialog()才能返回"真实"?
我对此有点新意. System.Windows.ShowDialog的回归类型是bool?它应该返回true,当你打Submit,而false当你打Cancel.但我不知道如何指定哪个Button是官方提交按钮.
编辑:在相关的说明,我很好奇它如何返回null.
在我的申请中,我有一个ListBox项目.该应用程序是用WPF编写的.
如何自动滚动到最后添加的项目?我希望在ScrollViewer添加新项目时将其移动到列表的末尾.
有什么事ItemsChanged吗?(我不想使用这个SelectionChanged活动)
[编辑]:我想出了如何自己做这件事.我发布了我的解决方案,希望能在几天谷歌上搜索其他人.如果您是WPF大师,请查看我的解决方案,让我知道是否有更好/更优雅/更有效的方法来做到这一点.特别是,我有兴趣知道我不知道的...这个解决方案怎么会让我不知所措?问题实际上归结为暴露内部控制属性.
问题:我正在创建一些代码,以便在WPF中为XML文件自动生成数据绑定GUI.我有一个xsd文件,可以帮助我确定节点类型等.简单的键/值元素很容易.
当我解析这个元素时:
<Key>value</Key>
Run Code Online (Sandbox Code Playgroud)
我可以创建一个新的'KeyValueControl'并设置DataContext为这个元素.KeyValue被定义为UserControl,并且只有一些简单的绑定.它适用于任何简单的XElement.
此控件中的XAML如下所示:
<Label Content={Binding Path=Name} />
<TextBox Text={Binding Path=Value} />
Run Code Online (Sandbox Code Playgroud)
结果是一行包含带有元素名称的标签和一个带有我可以编辑的值的文本框.
现在,有时我需要显示查找值而不是实际值.我想创建一个类似于上面KeyValueControl的'KeyValueComboBox',但是能够指定(基于文件中的信息)ItemsSource,Display和Value路径.'Name'和'Value'绑定与KeyValueControl相同.
我不知道标准用户控件是否可以处理这个问题,或者我是否需要从Selector继承.
控件中的XAML看起来像这样:
<Label Content={Binding Path=Name} />
<ComboBox SelectedValue={Binding Path=Value}
ItemsSource={Binding [BOUND TO THE ItemsSource PROPERTY OF THIS CUSTOM CONTROL]
DisplayMemberPath={Binding [BOUND TO THE DisplayMemberPath OF THIS CUSTOM CONTROL]
SelectedValuePath={Binding [BOUND TO THE SelectedValuePath OF THIS CUSTOM CONTROL]/>
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我会做这样的事情(假设这个节点是'Thing'并且需要显示Things列表,以便用户可以选择ID:
var myBoundComboBox = new KeyValueComboBox();
myBoundComboBox.ItemsSource = getThingsList();
myBoundComboBox.DisplayMemberPath = "ThingName";
myBoundComboBox.ValueMemberPath = "ThingID"
myBoundComboBox.DataContext = thisXElement;
...
myStackPanel.Children.Add(myBoundComboBox)
Run Code Online (Sandbox Code Playgroud)
所以我的问题是:
1)我应该从Control或Selector继承我的KeyValueComboBox吗?
2)如果我应该从Control继承,我如何公开内部组合框的ItemsSource,DisplayMemberPath和ValueMemberPath以进行绑定?
3)如果我需要继承Selector,有人可以提供一个小例子来说明我如何开始使用它吗?再说一次,我是WPF的新手,所以如果这是我需要走的路,一个好的,简单的例子真的会有所帮助.
wpf ×10
listbox ×3
binding ×2
c# ×2
dialog ×2
.net ×1
combobox ×1
itemtemplate ×1
listboxitem ×1
messagebox ×1
mvvm ×1
relaycommand ×1
resources ×1
scroll ×1
styles ×1
triggers ×1
wpf-controls ×1
wpfdatagrid ×1
xaml ×1