0

在我们的项目中,我们使用 GraphSharp 库。当我们想从图中删除所有边和顶点时,我们遇到了一些问题。

在每个示例中,在 xaml 中都有类似的东西

<zoom:ZoomControl  Grid.Row="1"  Zoom="0.2" ZoomBoxOpacity="0.5" Background="#ff656565">

                    <toProjectGraph:EntityGraphLayout x:Name="graphLayout" Margin="10"
                    Graph="{Binding Path=GraphViewModel.EntityGraph}"
                    LayoutAlgorithmType="{Binding Path=GraphViewModel.LayoutAlgorithmType, Mode=OneWay}"
                    OverlapRemovalAlgorithmType="FSA"
                    HighlightAlgorithmType="Simple" 
                      />
                </zoom:ZoomControl>

xaml 创建我们类的实例EntityGraphLayout并使用它来可视化所有内容。

是否有可能以某种方式将此实例“绑定”EntityGraphLayout到我们视图模型中的某个属性,以便我们可以在我们的视图模型代码中引用它?

或者也许有一种方法可以创建此类的实例并告诉 xaml 从某个路径获取对对象的引用。

4

1 回答 1

1

听起来您想要的是在视图模型中创建对象,将其公开为属性,并将其绑定到Content缩放控件的属性,如下所示:

视图模型:

public class ViewModel {
    private EntityGraphLayout _layout = new EntityGraphLayout();
    public EntityGraphLayout EntityGraphLayoutProperty
    { 
        get { return _layout; } 
        set { _layout = value; }
    }
}

XAML:

<zoom:ZoomControl Content="{Binding EntityGraphLayoutProperty}" Grid.Row="1"  Zoom="0.2" ZoomBoxOpacity="0.5" Background="#ff656565" >
</zoom:ZoomControl>

请注意,您需要确保将DataContext缩放控件设置为您的视图模型。

如果您希望在 XAML 中创建它,您还可以通过graphLayout在 XAML 中定义的名称引用它来访问视图模型中的对象。这将需要在您的视图模型中引用视图,这可能并不理想。

于 2013-01-05T13:30:03.567 回答