我想让用户能够编辑WPF DataGrid中的一些数据(来自.net Framework 4.0)."仪器"列应允许用户从静态列表中选择可用的仪器或写入自由文本.我的DataGrid使用MVVM绑定到数据.我尝试了很多我在互联网上找到的解决方案,但没有一个能正常工作.这是我的代码:
<DataGrid Margin="0,6" ItemsSource="{Binding Path=Orders}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="True">
<DataGrid.Columns>
<DataGridComboBoxColumn Header="Instrument" MinWidth="140"
ItemsSource="{x:Static ViewModel.Instruments}" SelectedItemBinding="{Binding Path=SelectedInstrument}">
<DataGridComboBoxColumn.EditingElementStyle>
<Style TargetType="ComboBox">
<Setter Property="IsEditable" Value="True"/>
</Style>
</DataGridComboBoxColumn.EditingElementStyle>
</DataGridComboBoxColumn>
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud)
下拉列表正确显示.可以使用任何文本编辑该字段,但在为自由文本关闭下拉列表后,它会为SelectedInstrument设置null.它仅适用于所选项目.我试图更改为SelectedValueBinding,但它没有帮助.
如何正确实施这一要求?有人可以在这里发布工作样本吗?
附加:订单是ObservableCollection Order具有类似字符串Title,DateTime Ordered,string SelectedInstrument,Instruments是一个字符串[]的属性
解决方案:以下建议作为bathineni工作的解决方法:
<DataGrid Margin="0,6" ItemsSource="{Binding Path=Orders}" AutoGenerateColumns="False" CanUserAddRows="False" CanUserDeleteRows="False" CanUserResizeRows="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Instrument" MinWidth="140">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=SelectedInstrument, Mode=OneWay}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<ComboBox IsEditable="True" Text="{Binding Path=SelectedInstrument}"
ItemsSource="{x:Static ViewModel.Instruments}"/>
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
Run Code Online (Sandbox Code Playgroud) 我需要TextWrapping在WPF中应用一个CheckBox.
请看这两个样本:
<CheckBox>
<TextBlock TextWrapping="Wrap"
Text="_This is a long piece of text attached to a checkbox."/>
</CheckBox>
<CheckBox>
<AccessText TextWrapping="Wrap"
Text="_This is a long piece of text attached to a checkbox."/>
</CheckBox>
Run Code Online (Sandbox Code Playgroud)
如果我使用一个TextBlock在Content的CheckBox,检查元素(垂直对齐的顶部)和文本显示正常,但不能加速.
如果我使用一个AccessText在Content的CheckBox,校验元件显示错误(垂直取向是中央).
如何更改Style元素以显示CheckBox正确的?
在我的Angualar 2(最终)应用程序中,我经常需要通过路由名称(例如'/ products')创建完整(绝对)URL,例如,为特定页面提供永久链接或从另一个组件中打开页面标签/窗口.
是否有任何Angular 2 API,它允许通过路由名称获取绝对Url?如果不是,是一些已知的woraround,例如使用javascript?
我已尝试过location或PathLocationStrategy(例如prepareExternalUrl),但该方法返回'/ products'而不是例如http:// localhost/products
是否可以在没有WebBrowser控件的情况下在Windows.Forms中托管Silverlight,以避免不必要的COM封送?
编辑:目标是在Windows 2000等旧平台上使用WPF或Silverlight等丰富的图形内容.
我尝试从.Net Framework 4.5自定义System.Windows.Controls.Ribbon,因此它可以与Expression Dark主题一起使用(深色,如Blend的默认主题).我尝试过以下想法,但直到现在还没有任何进展:
任何帮助将不胜感激,欢迎所有建议.
如何为代码隐藏中的类型设置默认样式,例如:
<ScaleTransform x:Key="scaler" ScaleX="1.25" ScaleY="1.25" />
<Style TargetType="{x:Type ToolTip}">
<Setter Property="LayoutTransform" Value="{DynamicResource scaler}"/>
</Style>
Run Code Online (Sandbox Code Playgroud)
我需要在代码隐藏中而不是在xaml标记中设置工具提示的样式.
如何在WPF中使用绑定提供撤消/重做?
例如,您使用绑定实现主 - 详细视图.编辑后,您的更改会使用绑定自动保存.然后,您要撤消更改.
在WPF绑定中是否有现成的东西?WPF是否提供了一些结构或接口?
这个问题不是关于如何使用堆栈实现撤销/重做.
如何在WPF Listview中使用GridView显示一个空文本(如在ASP.net中),例如"请选择一个人"或"0个项目成立"?
如何以编程方式卸载浏览器外的Silverlight 4应用程序,而不是使用contextmenu(例如,如果我想替换上下文菜单)?
编辑
我在"安装没有涉及浏览器的Silverlight应用程序"中找到了如何通过调用命令行来卸载:
"%ProgramFiles%\ Microsoft Silverlight\sllauncher.exe"/ uninstall /origin:silverlight.net/content/samples/apps/...
这可以用于: -
dynamic cmd = AutomationFactory.CreateObject("WScript.Shell");
cmd.Run(run, 1, true);
Run Code Online (Sandbox Code Playgroud)
有没有更好的解决方案?
在Silverlight 4的新功能列表中,您将找到以下内容:
网络摄像头和麦克风,允许共享视频和音频,例如聊天或客户服务应用程序.
Silverlight将音频流捕获为原始pcm.那么如何在客户端没有任何编码的情况下实现音频/视频聊天或客户端/服务器音频录制应用程序,而Silverlight中没有API?
在Silverlight中你不能使用非托管dll.您可以使用com自动化(Silverlight 4的一项新功能,我认为仅适用于Windows),但前提是它已经安装在客户端(您知道随Windows安装的任何编码COM服务器)吗?否则,您将如何在Silverlight应用程序中部署自定义COM服务器?
我找到的唯一方法是部署命令行编码并将其与COM AutomationFactory.CreateObject("WScript.Shell")一起使用,或实现编码以在您自己的AudioSink中使用它.
wpf ×6
.net ×4
silverlight ×3
styles ×3
binding ×2
c# ×2
alignment ×1
angular ×1
checkbox ×1
code-behind ×1
com ×1
datagrid ×1
deployment ×1
encoding ×1
javascript ×1
listview ×1
microphone ×1
multimedia ×1
ribbon ×1
templates ×1
undo ×1
uninstall ×1
webcam ×1
winforms ×1
word-wrap ×1