C#CaliburnMicro:如何根据数据网格中选择的项目自动在组合框中显示值?

问题描述

当用户从Datagrid中选择一行时。我希望该项目的颜色在组合框中自动选择。目前,组合框对Datagrid的选择不响应。

XAML:

<DataGrid x:Name="MyCollection" SelectedItem="{Binding MySelectedItem}">
    <DataGrid.Columns>
        <DataGridTextColumn Binding="{Binding Path=ItemName}"/>
    </DataGrid.Columns>
</DataGrid>

<ComboBox ItemsSource="{Binding ItemColours}" SelectedItem="{Binding MySelectedItem.Colour}"/>
<TextBox Text="{Binding MySelectedItem.Colour}" isEnabled="False"/>

ViewModel:

public BindableCollection<Item> MyCollection { get; set; }

private Item_mySelectedItem;
public Item MySelectedItem
{
    get { return _mySelectedItem; }
    set
    {
        _mySelectedItem= value;
        NotifyOfPropertyChange(() => MySelectedItem);
    }
}

// Constructor
public Myclass()
{
    MyCollection = GetData();
}

我已经检查了,并且组合框肯定已连接到SelectedItem.Colour,因为颜色也显示在其他地方的文本框中,并且在手动更改组合框选择时会进行更新。我希望组合框具有与TextBox相同的功能和响应能力:

  • 在数据网格上选择一个项目时,组合框显示该项目的颜色;
  • 手动选择其他颜色会更改SelectedItem.Colour值。
  • 理想情况下,即使isEnabled = False,ComboBox选定项也会显示新SelectedItem的颜色,就像TextBox值被更新一样,即使它被禁用。

我尝试过SelectedItem="{Binding SelectedBall.Colour,Mode=TwoWay}",但没有发现任何区别。

感谢您的帮助。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)