我正在处理这些列表,以获得与组合框中所选项目匹配的项目.
private void InitializaMessageElement()
{
if (_selectedTransactionWsName != null)
{
Run Code Online (Sandbox Code Playgroud)
获取与下拉列表中所选项目匹配的事务Web服务名称,输出= TestWS,这是正确的
var getTranTypeWsName = TransactionTypeVModel
.GetAllTransactionTypes()
.FirstOrDefault(transTypes =>
transTypes.WsMethodName == _selectedTransactionWsName);
Run Code Online (Sandbox Code Playgroud)从treenode列表中循环wsnames列表.在这里它给了我所有正确的节点.
var wsNameList = MessageElementVModel
.GetAllTreeNodes().Select(ame =>
ame.Children).ToList();//. == getTranTypeWsName.WsMethodName);
Run Code Online (Sandbox Code Playgroud)在wsNameList中找到getTranTypeWsName.WsMethodName.这是我遇到问题的地方:
var msgElementList = wsNameList.Select(x => x.Where(ame => getTranTypeWsName != null && ame.Name == getTranTypeWsName.WsMethodName)).ToList();
Run Code Online (Sandbox Code Playgroud)我的MsgElement列表:
MsgElementObsList = new ObservableCollection<MessageElementViewModel>(msgElementList);
this.messageElements = _msgElementList;
NotifyPropertyChanged("MessageElements");
}
Run Code Online (Sandbox Code Playgroud)
这里抛出了施法错误.为什么不工作?我是LINQ的新手.谢谢
我有一个文本框,我想让它成为一个自动完成文本框.我输入文本框时要显示的数据来自我的数据网格.我的datagrid有4列,我可以从datagrid中选择任何列.
这是我的文本框
<TextBox Margin="0,93,39,18" Grid.Column="1" HorizontalAlignment="Right" Width="325">
<TextBox.Style>
<Style TargetType="TextBox">
<Style.Triggers>
<Trigger Property="Text" Value="">
<Setter Property="Background" Value="{StaticResource SearchHint}"/>
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
Run Code Online (Sandbox Code Playgroud)
数据网格
<DataGrid Name="Datagrid" ItemsSource="{Binding Messages}" Margin="4,0,380,413" Grid.Row="1" AutoGenerateColumns="False"
IsReadOnly="True" RowBackground="WhiteSmoke" >
Run Code Online (Sandbox Code Playgroud)
我用谷歌搜索,我得到的大部分样本都没有遵循WPF/MVVM模式.我要做的是将文本块数据绑定到网格项目.有人可以通过给我点到哪里开始帮助我.
我正在练习如何使用MVVM模式编写WPF应用程序.到目前为止,我还没有在我的代码中使用命令.在我的Viewmodel中,我实现INotifyPropertyChanged并使用(事件PropertyChangedEventHandler PropertyChanged)来触发事件.为什么我觉得我仍然错过了一些关于如何使用命令的WPF概念?
什么时候使用命令?
这可能非常简单,但我无法在转换后看到数据
public void SearchGrid(int id, ObservableCollection<TestModel> msgField)
{
foreach (var c in msgField)
DisplayColor = c.Id == id ? Brushes.Blue : Brushes.Black;
}
Run Code Online (Sandbox Code Playgroud)
LINQ:
Enumerable.FirstOrDefault(msgField.Where(x => x.Id == id), x => { DisplayColor = Brushes.CadetBlue; });
Run Code Online (Sandbox Code Playgroud) linq ×2
mvvm ×2
wpf ×2
autocomplete ×1
c# ×1
combobox ×1
command ×1
data-binding ×1
events ×1
foreach ×1