我正在尝试执行数据绑定,给出以下情况:
我有一个名为“Node”的类,它有两个属性:“speed”和“pauseTime”。然后我有一个节点数组。
在我的XAML中,我有一个数字控件(标记为Node),允许用户在节点之间切换。还有两个子控件,我想要显示所选节点的速度和pauseTime。
我的问题是如何为速度设置数据绑定,例如,它根据节点数值控件中的值显示节点数组中所选节点的速度?
我尝试使用Google搜索,但不确定要使用哪些搜索字词。
答案 0 :(得分:0)
我不确定你的数字控制是什么意思,但我敲了一个主细节控制场景的例子。
在XAML中,你有一个带有ListView(主)的Grid,以及一个TextBlock(详细信息):
<Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<ListView ItemsSource="{Binding}" x:Name="masterListView">
<ListView.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" />
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
<TextBlock Grid.Row="1" Text="{Binding ElementName=masterListView, Path=SelectedItem.Speed}" />
</Grid>
背后的代码如下所示:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new Node[]
{
new Node() { Speed = 1, PauseTime = "1 Min", Name = "Item 1" },
new Node() { Speed = 2, PauseTime = "2 Mins" , Name = "Item 2" }
};
}
}
public class Node
{
public int Speed { get; set; }
public string PauseTime { get; set; }
public string Name { get; set; }
}
子TextBlock绑定到Selected节点的Speed属性。如果将IsSynchronizedWithCurrentItem =“True”添加到ListView,则在加载窗口时将自动选择第一个项目。如果您掌握Google主要详情/ WPF和IsSynchronizedWithCurrentItem =“True”,您会找到更多详细信息。
对于Google如何使用MVVM执行此操作可能也很有用 - this Stackoverflow Answer中提到了一种合理的方法。