[英]WPF PropertyGrid doesn't apply property value
我正在使用 Denis Vuyka 的 WPF 的此属性控件。
如果我不按 TAB 键,我的问题是它不会应用属性的新值。
因此,如果我在属性网格中更改一个属性,然后单击“确定”按钮,该属性仍然具有以前的值。
重现的示例代码:
public partial class MainWindow : Window
{
DataObject dataObject = new DataObject();
public MainWindow()
{
InitializeComponent();
propertyGrid.SelectedObject = dataObject;
}
private void OnOK(object sender, RoutedEventArgs e)
{
MessageBox.Show("Value of test is " + dataObject.test);
}
}
class DataObject
{
public int test { get; set; }
public int test2 { get; set; }
}
<Window x:Class="PropGridTest.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:pg="http://schemas.denisvuyka.wordpress.com/wpfpropertygrid"
Title="MainWindow" Height="350" Width="525">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="50" />
<RowDefinition Height="*" />
</Grid.RowDefinitions>
<Button Grid.Row="0" IsDefault="True" Click="OnOK">OK</Button>
<pg:PropertyGrid x:Name="propertyGrid" Grid.Row="1">
</pg:PropertyGrid>
</Grid>
</Window>
只需在属性测试中输入一个数字,然后单击确定按钮。
有人知道这个问题的解决方法吗?
到目前为止,这是我在 OnOK 中尝试的但无济于事:
propertyGrid.Focus();
propertyGrid.MoveFocus(new System.Windows.Input.TraversalRequest(System.Windows.Input.FocusNavigationDirection.Next));
System.Windows.Forms.SendKeys.SendWait("{TAB}");
我不确切知道这个网格(我使用这个),但我在那里遇到了同样的问题。 这似乎是一个普遍的问题。 在选择新的 object 或清除选定的 object 属性之前,尝试将焦点从 PropertyGrid 移到另一个控件。 例如:
public static void UpdatePropertyGridObjects(object objToSelect)
{
Components.DockManager.Focus();
Components.PropertyGrid.SelectedObject = objToSelect;
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.