【发布时间】:2019-06-19 20:59:19
【问题描述】:
我有一个多维数据集对象列表,我的 ListView 显示了这些多维数据集的名称,一旦选择了多维数据集,它的属性就会显示在不同的文本框中,这些属性已经绑定到 SelectedItem。但是,我还没有想出使用 Xaml 将 SelectedItem 的属性绑定到那些 TextBox 的方法,以便立即应用更改。
我已经尝试过使用 TextChanged 事件来实现这一点,但我认为也许有一种更好的方式来实现这一点。
编辑:这是它的基本工作原理。
listOfCubes.ItemsSource = cubes; //setting the source of type Cube
绑定视图
<ListView.View>
<GridView>
<GridViewColumn DisplayMemberBinding="{Binding Name}" />
</GridView>
</ListView.View>
文本框的一个示例
<TextBox TextChanged="Cube_TextChanged"
Text="{Binding Path=SelectedItem.RotateTransform.Rotation.Axis.X,
ElementName=listOfCubes}">
我要替换的东西
private void Cube_TextChanged(object sender, TextChangedEventArgs e)
{
//apply changes in Properties to the selected cube
}
【问题讨论】:
-
能否请您出示您的代码:)
-
您是否已经有一个视图模型,其中包含 Cube 集合和所选 Cube 的属性?
-
你不绑定选中项本身,你绑定选中项绑定的内容。
-
我并不是真的要求绑定 SelectedItem,我是问如何根据选择更改多维数据集的属性。
-
你的路径指向 selecteditem,因为你在类中没有显示其他属性,它应该指向什么?通常,在您的列表视图中,您将有 SelectedItem="{Binding MySelectedCube}" 或类似的东西,然后您的文本框将绑定到 Text="{Binding MySelectedCube.x}"。 MySelectedCube 是 Cube 的一个属性,它在你的班级某处。