下午好,
我尝试创建一个用户可以在运行时添加到UI的自定义类。基本上,为了简单起见,我有一个课程,我打电话给"工作站"它有一个名为Ping()的方法和一个名为IPAddress的属性。当调用Ping()时,如果IP地址是可ping的,我想要我的工作站" icon"出现,当它不能ping,我希望它不可见。
在运行时,用户会点击"添加工作站" (使用IP地址)将创建"工作站"的实例。他可以放置工作站"网格中的图标。如果需要,他也可以移动它。
最好的方法是什么?我试图继承Image类(用户控件),但我试图找到一种不会破坏MVVM原则的简单方法。
答案 0 :(得分:1)
您需要使用DataTemplate
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";}
}
}
在您的ViewModel中:
public WorkStation CurrentWorkStation
{
get{return new WorkStation();}
}