下午好,
我正在尝试创建一个用户可以在运行时添加到 UI 的自定义类。基本上,为了简单起见,我有一个称为"工作站"的类,它有一个名为 Ping() 的方法和一个名为 IPAddress 的属性。当调用 Ping() 时,如果 IP 地址是可 ping 的,我希望我的工作站"图标"出现,当它不可 ping 时,我希望它是不可见的。
在运行时,用户将单击"添加工作站"(使用IP地址),这将创建"工作站"的实例,并且他将能够在网格中放置"工作站"图标。如果需要,他也可以移动它。
最好的方法是什么?我试图从 Image 类(用户控件)继承,但我试图找到一种更简单的方法,不会破坏 MVVM 原则。
您需要使用数据模板
Xaml :
定义命名空间
<UserControl xmlns:local="...your local namespace" >
<UserControl.Resources>
<DataTemplate x:Key="workStation" DataType="{x:Type local:WorkStation}">
<TextBlock Text="{Binding IPAddress}" />
</DataTemplate>
</UserControl.Resources>
<ContentControl Content="{Binding CurrentWorkStation}" ContentTemplate="{StaticResource workStation}" />
</UserControl>
.cs:
public class WorkStation
{
public string IPAddress
{
get{ return "127.0.0.1";}
}
}
在您的视图模型中:
public WorkStation CurrentWorkStation
{
get{return new WorkStation();}
}