我的WPF应用程序被组织为TabControl,每个选项卡包含不同的屏幕.
一个TabItem绑定到需要一点时间才能加载的数据.由于此TabItem表示用户可能很少使用的屏幕,因此我希望在用户选择选项卡之前不加载数据.
我怎样才能做到这一点?
我有一个像这样定义的ViewModel:
public class LocationTreeViewModel<TTree> :
ObservableCollection<TTree>, INotifyPropertyChanged
where TTree : TreeBase<TTree>
Run Code Online (Sandbox Code Playgroud)
我想在XAML中的DataTemplate的DataType属性中引用它.我怎样才能做到这一点?
我有这个代码:
CustomUserControl.xaml.cs
namespace MyProject
{
public partial class CustomUserControl<T> : UserControl
{
...
}
}
Run Code Online (Sandbox Code Playgroud)
而这个xaml:
CustomUserControl.xaml
<UserControl x:Class="MyProject.CustomUserControl"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:sys="clr-namespace:System;assembly=mscorlib">
<Grid>
</Grid>
Run Code Online (Sandbox Code Playgroud)
它不起作用,因为x:Class ="MyProject.CustomUserControl"与代码隐藏的泛型类定义不匹配.有没有办法使这项工作?
有没有办法创建一个处理项目列表的数据模板?
我有Contact.Phones(EntityCollection<Phone>),我希望数据模板处理列表 - 添加删除编辑等.
有没有办法将DataTemplate的DataType属性设置为泛型EntityCollection<Phone>?
wpf entity-framework generic-list datatemplate generic-programming
我有以下XAML片段,我想要包含一个通用参数,我无法弄清楚我需要做什么?
我想我将不得不创建一个标记扩展来执行此操作,但我不确定如何使用x:Type属性.
DataType="{x:Type vm:FooViewModel<Bar>}"
Run Code Online (Sandbox Code Playgroud) 我有一个用于我的MVP的BaseView - PRISM WPF应用程序.现在出于某种原因,我们考虑将_presenter作为BaseView中的模板化字段.
早些时候,我将xaml表示为
<base:BaseView xamlns:base="clr address of the dll which had BaseView" >
</base:BaseView>
Run Code Online (Sandbox Code Playgroud)
现在,因为我已经改变了 BaseView到BaseView<TPresenter>,那么如何将我写的XAML中呢?
我有以下转换器
[ValueConversion(typeof(bool), typeof(Visibility))]
public sealed class BoolToVisibilityConverter : IValueConverter
{
public Visibility TrueValue { get; set; }
public Visibility FalseValue { get; set; }
public BoolToVisibilityConverter()
{
// set defaults
TrueValue = Visibility.Visible;
FalseValue = Visibility.Collapsed;
}
public object Convert(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (!(value is bool))
return null;
return (bool)value ? TrueValue : FalseValue;
}
public object ConvertBack(object value, Type targetType,
object parameter, CultureInfo culture)
{
if (Equals(value, TrueValue))
return true;
if (Equals(value, FalseValue)) …Run Code Online (Sandbox Code Playgroud) wpf ×7
xaml ×4
.net ×2
c# ×2
generics ×2
datatemplate ×1
generic-list ×1
mvp ×1
mvvm ×1
mvvm-light ×1
prism ×1