我創建了一個自定義控件,該控件在其自己的XAML工作表中進行了樣式化和配置。該控件中的數據綁定使用特定的對象(CProject類)。如何將自定義對象作爲datacontext實例獲取或設置爲wpf中的自定義控件
爲了澄清,控件是一個項目框架,它具有設置控件和一個畫布,它將成爲每個/任何項目的工作區。
項目控制(IPProjectPanel)繼承了「Frame」,並且還將一個「settings」堆棧面板添加到其子項列表中,該子項列表又包含 - well設置的控件。
但是,CProject類是純粹的功能部件,沒有UI交互或處理任何事情。因此,我需要將CProject的一個實例「插入」每個可以激活的獨特項目。因此,我想將一個特定的CProject實例設置爲datacontext到TabPanel中的每個IPProjectPanel實例。我想通過代碼設置datacontext,或者通過XAML中的設置datacontext創建它,並在初始化後檢索它。
雖然問題是,我無法完全弄清楚。
這裏是IPProjectPanel在XAML的風格的一個片段,使用該方法來設置的datacontext在XAML:
<Style TargetType="{x:Type ip:IPProjectGrid}">
<Setter Property="OverridesDefaultStyle"
Value="True" />
<Setter Property="SnapsToDevicePixels"
Value="True" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ip:IPProjectGrid}">
<Grid Background="White"
HorizontalAlignment="Stretch"
VerticalAlignment="Stretch"
Margin="0">
<!---->
<Grid.DataContext>
<ipp:CProject></ipp:CProject>
</Grid.DataContext>
<StackPanel x:Name="PART_settingsPanel"
HorizontalAlignment="Right"
VerticalAlignment="Stretch"
MinWidth="300" Background="Gray">
<GroupBox Header="Project settings">
<StackPanel>
....
</style>
這被設置爲背景網格,但我想將其作爲實際類的上下文(IPProjectPanel)。
因此,IPProjectPanel實例是由代碼(現在..)創建的,我需要檢索CProject實例(或設置一個),以便我可以使用它。
我想繼續以C#/ WPF的方式來做東西,因爲這個應用程序也是WPF和C#概念等的培訓。因此,「最好的C#-WPF」方法是非常受歡迎的,但這是一種解決方案!
謝謝你的時間。
謝謝!我沒有意識到這個概念,但我很高興現在我發現了它,處於開發的早期階段! ;) –