Q
複雜綁定
0
A
回答
0
您需要聲明一個DependencyProperty以將您的值暴露給WPF系統。請參閱Dependecy Properties overview。可能值得在類上聲明依賴屬性並從結構中提取值。
如果您現有的數據對象僅僅用於您的後端數據(或模型),您可能還想考慮在此之前使用另一個類來暴露給WPF,這個新類通常稱爲ViewModel。看看Josh Smith MVVM on MSDN有一個很好的解釋。
1
爲了增加上述AkSki的回答......
如果使用雙向綁定(讀寫)或單向到源極(只寫)綁定到一個結構,它不會按照您的預期工作。
結構始終是按值傳遞的,它們不是通過引用傳遞的。這意味着當WPF在幕後傳遞它們時,它們將被作爲新值複製,而不是通過它們的引用傳遞。這意味着WPF將寫入副本,而不是原始結構。
執行雙向或單向源代碼綁定的唯一方法是綁定到類。
如果您只需要將此結構值顯示爲只讀,請按照上面的AlSki的回答。
0
它只是工作。這裏有一個例子:
的觀點:
<Window x:Class="WpfApplication1.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<Label Content="{Binding FinalDestination.X}"/>
<Label Grid.Row="1" Content="{Binding FinalDestination.Y}"/>
</Grid>
</Window>
視圖模型:
using System.Windows;
namespace WpfApplication1
{
public class ViewModel
{
public Point FinalDestination { get; private set; }
public ViewModel()
{
FinalDestination = new Point(8, 8);
}
}
}
視圖的代碼隱藏:
namespace WpfApplication1
{
public partial class MainWindow
{
public MainWindow()
{
InitializeComponent();
DataContext = new ViewModel();
}
}
}
注:我已經建立了這個快速在Visual Studio 2012在.NET 4.5上,但我很確定它適用於舊技術
相關問題
- 1. 複雜的模型綁定
- 2. WPF綁定複雜對象
- 3. Ember複雜屬性綁定
- 4. MVC.Net綁定複雜模型?
- 5. 複雜的ASP.NET MVC綁定
- 6. Silverlight:綁定複雜屬性
- 7. 綁定值複雜類型
- 8. Java與JSON玩複雜數據綁定
- 9. MVC-模型綁定的複雜類型
- 10. 角2複雜的屬性綁定
- 11. 綁定在MVC asp.net複雜的類
- 12. WPF - 組合框的複雜綁定
- 13. 將Silverlight UserControl綁定到複雜對象
- 14. ADO.net - 複雜的數據綁定
- 15. MVC3複雜的JSON列表綁定
- 16. 將複雜屬性綁定到DataGridView Win.Forms
- 17. 將TextBlock綁定到複雜屬性
- 18. 複雜的WebGrid綁定在MVC 3
- 19. Knockout.js複雜的表數據綁定
- 20. JSF複雜的形式 - 綁定錯誤
- 21. XForms:用於綁定的複雜計算
- 22. ASP.NET MVC:模型綁定複雜類型
- 23. bash中的複雜鍵綁定
- 24. 將複雜對象綁定到DataGrid
- 25. 是否有綁定複雜對象RADIOBUTTON
- 26. 綁定複雜的模型和DropDownListFor
- 27. Knockout.js:綁定到複雜的對象
- 28. 複雜的模型綁定到列表
- 29. Webforms模型綁定和複雜類型
- 30. 在Silverlight Datagrid中綁定複雜類型
你嘗試綁定到'PropertyName.ValueName'嗎? '' – Rachel