我有一个像这样定义的ViewModel:
public class LocationTreeViewModel<TTree> :
ObservableCollection<TTree>, INotifyPropertyChanged
where TTree : TreeBase<TTree>
Run Code Online (Sandbox Code Playgroud)
我想在XAML中的DataTemplate的DataType属性中引用它.我怎样才能做到这一点?
在一台计算机上,我有一个常规键盘和一个模拟键盘的条形码扫描仪.当我的应用程序获得键盘输入时,如何确定该输入是来自条形码扫描仪还是真正的键盘?
我需要将Visibility
a DataGridTemplateColumn
的一个属性绑定到一个外面的属性DataGrid.ItemsSource
,因为我需要将所有行中的这个列绑定到其中的一个属性ViewModel
,但据我所知你只是可以将它绑定到内部的某个属性,ItemsSource
或者你应该使用ElementStyle
,EditingElementStyle
我已经尝试过这段代码:
<DataGridTemplateColumn Header="post"
Visibility="{Binding DataContext.ProjectPostVisibility
, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MvvmCommonControl:DataGrid}}"/>
Run Code Online (Sandbox Code Playgroud)
我确定我的绑定是正确的,因为当我绑定DataGridCell.Visibility
下面的代码时它工作正常:
<DataGridTemplateColumn Header="post">
<DataGridTemplateColumn.CellStyle>
<Style TargetType="DataGridCell">
<Setter Property="Visibility" Value="{Binding DataContext.ProjectPostVisibility,RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=MvvmCommonControl:DataGrid}}"/>
</Style>
</DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn >
Run Code Online (Sandbox Code Playgroud) 我有这两个班:
public class Item
{
public int Id{get;set;}
public List<Test> TestList{get;set;}
}
public class Test
{
public int Id{get;set;}
public Item Item{get;set;}
public byte State{get;set;}
}
Run Code Online (Sandbox Code Playgroud)
物品类别数据:
Id
1
2
3
Run Code Online (Sandbox Code Playgroud)
和测试类数据:
Item State
1 1
1 2
1 3
2 1
2 4
3 2
Run Code Online (Sandbox Code Playgroud)
现在我需要编写一个查询,从我的类中选择只有状态1和2的Items.例如,对于上面的示例,它应返回Item = 3的行.我写了这个查询:
var stateList=new List<byte>(){1,2};
Items.Where(x => x.TestList.Select(c => c.State).Any(s => stateList.Contains(s)));
Run Code Online (Sandbox Code Playgroud)
但它也返回Item = 1.任何想法?
我开始使用MVVM Light版本4,我无法理解:
我们想开始开发一个中间桌面软件.我们决定使用WPF.我们不想使用MVVM模式.因为我们不熟悉MVVM,也有时间限制.是否真的开发没有MVVM模式的WPF应用程序(使用3层架构但没有MVVM)虽然它比win表单有更好的性能吗?
如何写入Word文档中的特定位置,例如第5行,第50个字符?我搜索了几个小时,但找不到解决方案.
我在用 Microsoft.Office.Interop.Word
我有一个关于Float
数据类型和UpdateSourceTrigger
in的有趣问题WPF
。我有一个带有浮点数据类型的属性并将它绑定到一个TextBox
和一组UpdateSourceTrigger
Binding to PropertyChanged
,但WPF
不让我输入 '.' 在TextBox
除非我更改UpdateSourceTrigger
为LostFocus
。我认为这是因为我们无法键入“。” 在浮点值的末尾。我不知道如何修复它,因为我需要输入“。” 并设置UpdateSourceTrigger
为PropertyChanged
。
该物业是:
public float? Amount
{
get;set;
}
Run Code Online (Sandbox Code Playgroud)
在 XAML 中:
<TextBox
Text="{Binding Amount , UpdateSourceTrigger=PropertyChanged}"/>
Run Code Online (Sandbox Code Playgroud) 我有两个具有相同列的表,一个用于保存银行金额,另一个用于保存收银台,它们都可能有很多数据,所以我担心数据检索速度。我不知道将它们结合起来更好通过添加额外的列来确定每条记录的类型或为每条记录创建一个单独的表?
我想将 datagrid.itemsource 绑定到具有匿名类型的列表,因此我将其绑定到 collectionViewSource,但我需要向列表添加或删除项目,但我不知道如何?
wpf ×5
c# ×3
mvvm ×3
binding ×2
data-binding ×2
mvvm-light ×2
.net ×1
keyboard ×1
linq ×1
list ×1
ms-word ×1
sql-server ×1
wpfdatagrid ×1
xaml ×1